<?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>233780</bug_id>
          
          <creation_ts>2021-12-02 12:37:15 -0800</creation_ts>
          <short_desc>Add room for more bytecode in WKContentRuleList file format</short_desc>
          <delta_ts>2021-12-03 09:14:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819831</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-02 12:37:15 -0800</bug_when>
    <thetext>Add room for more bytecode in WKContentRuleList file format</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819833</commentid>
    <comment_count>1</comment_count>
      <attachid>445761</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-02 12:41:40 -0800</bug_when>
    <thetext>Created attachment 445761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819966</commentid>
    <comment_count>2</comment_count>
      <attachid>445797</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-02 17:12:34 -0800</bug_when>
    <thetext>Created attachment 445797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820023</commentid>
    <comment_count>3</comment_count>
      <attachid>445807</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-02 21:51:33 -0800</bug_when>
    <thetext>Created attachment 445807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820153</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-03 08:55:43 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 445807 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820163</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-03 09:13:09 -0800</bug_when>
    <thetext>http://trac.webkit.org/r286492</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820164</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-03 09:14:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/86020867&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445761</attachid>
            <date>2021-12-02 12:41:40 -0800</date>
            <delta_ts>2021-12-02 17:12:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233780-20211202124139.patch</filename>
            <type>text/plain</type>
            <size>33562</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZjZmM1ZWFjNDkzNTA4
YTBhNzA1MTU4NWNhMGI0NmViMmYxY2RlYS4uMGYwYmNjZDQ3NjZlNWE5ZjY0YzdlMDVmZjkxMWUz
YzlmMTk5Y2QyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEyLTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHJv
b20gZm9yIG1vcmUgYnl0ZWNvZGUgaW4gV0tDb250ZW50UnVsZUxpc3QgZmlsZSBmb3JtYXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzc4MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciByZGFyOi8v
NzIyMDMzNTIgd2Ugd2lsbCBuZWVkIG1vcmUgYnl0ZWNvZGUuICBUaGlzIGFkZHMgcm9vbSBmb3Ig
aXQgd2l0aG91dCBwdXR0aW5nIGFueXRoaW5nIHRoZXJlIHlldC4KKyAgICAgICAgQXMgbG9uZyBh
cyB3ZSBhcmUgdXBkYXRpbmcgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBmb3JjaW5nIGEgcmVjb21w
aWxlLCBJJ20gbWFraW5nIHRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbgorICAgICAgICBtb3JlIGxp
a2UgdGhlIG90aGVyIGFjdGlvbiBzZXJpYWxpemF0aW9ucyB0byBiZSBhYmxlIHRvIHNpbXBsaWZ5
IHRoZSBpbnRlcnByZXRlciBsYXRlci4gIEknbSBhbHNvIHNoaWZ0aW5nCisgICAgICAgIGFyb3Vu
ZCBhIGZldyBiaXRzIGluIHRoZSBieXRlY29kZSB0byBiZSBtb3JlIG9yZ2FuaXplZCBhbmQgcmVh
c29uYWJsZS4KKworICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4
dGVuc2lvbi5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25T
dHJpbmdTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpkZXNlcmlhbGl6ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6c2VyaWFsaXplU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpzdHJpbmdTZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9ERkFCeXRlY29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnNt
YWxsZXN0UG9zc2libGVKdW1wU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgICogY29udGVudGV4dGVu
c2lvbnMvREZBQnl0ZWNvZGVDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6c21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKToKKwogMjAyMS0xMi0wMSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBT
cGFuIGluc3RlYWQgb2YgcG9pbnRlci9sZW5ndGggaW4gQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDVmNDZlZjZjNTdiNzc4ZTkzYjBjZThiMmVkYWZmMzBmMjc0ZTdmOTYuLjEx
ZTc5YTVmZjcxMmUxZGMyYmQ4YTgyMzBiNmJlNDU2ZjFiMmY1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMjEtMTItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBBZGQgcm9vbSBmb3IgbW9yZSBieXRlY29kZSBpbiBXS0NvbnRl
bnRSdWxlTGlzdCBmaWxlIGZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZnJhbWVVUkxGaWx0
ZXJzQnl0ZWNvZGUgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YTo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Q29udGVu
dFJ1bGVMaXN0TWV0YURhdGE6OmZpbGVTaXplIGNvbnN0KToKKyAgICAgICAgKEFQSTo6ZW5jb2Rl
Q29udGVudFJ1bGVMaXN0TWV0YURhdGEpOgorICAgICAgICAoQVBJOjpkZWNvZGVDb250ZW50UnVs
ZUxpc3RNZXRhRGF0YSk6CisgICAgICAgIChBUEk6OmNvbXBpbGVkVG9GaWxlKToKKyAgICAgICAg
KEFQSTo6Y3JlYXRlRXh0ZW5zaW9uKToKKyAgICAgICAgKEFQSTo6Z2V0Q29udGVudFJ1bGVMaXN0
U291cmNlRnJvbU1hcHBlZEZpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVu
dFJ1bGVMaXN0U3RvcmUuaDoKKwogMjAyMS0xMi0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBTcGFuIGluc3RlYWQgb2YgcG9pbnRl
ci9sZW5ndGggaW4gQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5o
CmluZGV4IDhlMzcwYzJmODE2YTJiYmJjNTljODRmODVhODNlMTA1ZGQzZTFhMDAuLjQ0MjQ2ZjZh
ZDhiMzY1Y2UxZjViNWQzMmIyNjRkMWJhM2Y4NGNhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5o
CkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNwYW48Y29uc3QgdWludDhf
dD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25zdCB1aW50OF90PiB0b3BVUkxGaWx0ZXJz
Qnl0ZWNvZGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZy
YW1lVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25z
dCB1aW50OF90PiBzZXJpYWxpemVkQWN0aW9ucygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QgPSAwOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHJp
bmdTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25TdHJpbmdTZXJpYWxpemF0aW9uLmNwcAppbmRleCA2YzdkYWU2NGM5MjNl
NjUxMzJhOWYxZjhlNzUxNGMyNjNmNTBhODAzLi44OGNhZmU1OGFkNTc3MmFhZjQzMzJiZTA2YTFk
NjEwZTNjNzc2YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uU3RyaW5nU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0cmluZ1NlcmlhbGl6YXRp
b24uY3BwCkBAIC0zMiw1MSArMzIsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRl
bnNpb25zIHsKIAogU3RyaW5nIGRlc2VyaWFsaXplU3RyaW5nKFNwYW48Y29uc3QgdWludDhfdD4g
c3BhbikKIHsKLSAgICBjb25zdCBhdXRvKiBhY3Rpb25zID0gc3Bhbi5kYXRhKCk7Ci0gICAgY29u
c3QgYXV0byBhY3Rpb25zTGVuZ3RoID0gc3Bhbi5zaXplKCk7Ci0gICAgYXV0byBwcmVmaXhMZW5n
dGggPSBzaXplb2YodWludDMyX3QpICsgc2l6ZW9mKGJvb2wpOwotICAgIGF1dG8gc3RyaW5nU3Rh
cnRJbmRleCA9IHByZWZpeExlbmd0aDsKLSAgICBSRUxFQVNFX0FTU0VSVChhY3Rpb25zTGVuZ3Ro
ID49IHN0cmluZ1N0YXJ0SW5kZXgpOwotICAgIHVpbnQzMl90IHN0cmluZ0xlbmd0aCA9ICpyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oYWN0aW9ucyk7Ci0gICAgYm9vbCB3aWRlQ2hh
cmFjdGVycyA9IGFjdGlvbnNbc2l6ZW9mKHVpbnQzMl90KV07Ci0KLSAgICBpZiAod2lkZUNoYXJh
Y3RlcnMpIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWN0aW9uc0xlbmd0aCA+PSBzdHJpbmdT
dGFydEluZGV4ICsgc3RyaW5nTGVuZ3RoICogc2l6ZW9mKFVDaGFyKSk7Ci0gICAgICAgIHJldHVy
biBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KCZhY3Rpb25zW3N0cmluZ1N0
YXJ0SW5kZXhdKSwgc3RyaW5nTGVuZ3RoKTsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlQoYWN0
aW9uc0xlbmd0aCA+PSBzdHJpbmdTdGFydEluZGV4ICsgc3RyaW5nTGVuZ3RoICogc2l6ZW9mKExD
aGFyKSk7Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
JmFjdGlvbnNbc3RyaW5nU3RhcnRJbmRleF0pLCBzdHJpbmdMZW5ndGgpOworICAgIGF1dG8gc2Vy
aWFsaXplZExlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5k
YXRhKCkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHNwYW4uZGF0YSgpICsgc2l6ZW9m
KHVpbnQzMl90KSwgc2VyaWFsaXplZExlbmd0aCAtIHNpemVvZih1aW50MzJfdCkpOwogfQogCiB2
b2lkIHNlcmlhbGl6ZVN0cmluZyhWZWN0b3I8dWludDhfdD4mIGFjdGlvbnMsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIC8vIEFwcGVuZCBTZWxlY3RvciBsZW5ndGggKDQgYnl0ZXMpLgot
ICAgIHVpbnQzMl90IHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLSAgICBhY3Rpb25z
Lmdyb3coYWN0aW9ucy5zaXplKCkgKyBzaXplb2YodWludDMyX3QpKTsKLSAgICAqcmVpbnRlcnBy
ZXRfY2FzdDx1aW50MzJfdCo+KCZhY3Rpb25zW2FjdGlvbnMuc2l6ZSgpIC0gc2l6ZW9mKHVpbnQz
Ml90KV0pID0gc3RyaW5nTGVuZ3RoOwotICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSAhc3RyaW5n
LmlzOEJpdCgpOwotICAgIGFjdGlvbnMuYXBwZW5kKHdpZGVDaGFyYWN0ZXJzKTsKLSAgICAvLyBB
cHBlbmQgU2VsZWN0b3IuCi0gICAgaWYgKHdpZGVDaGFyYWN0ZXJzKSB7Ci0gICAgICAgIHVpbnQz
Ml90IHN0YXJ0SW5kZXggPSBhY3Rpb25zLnNpemUoKTsKLSAgICAgICAgYWN0aW9ucy5ncm93KGFj
dGlvbnMuc2l6ZSgpICsgc2l6ZW9mKFVDaGFyKSAqIHN0cmluZ0xlbmd0aCk7Ci0gICAgICAgIGZv
ciAodWludDMyX3QgaSA9IDA7IGkgPCBzdHJpbmdMZW5ndGg7ICsraSkKLSAgICAgICAgICAgICpy
ZWludGVycHJldF9jYXN0PFVDaGFyKj4oJmFjdGlvbnNbc3RhcnRJbmRleCArIGkgKiBzaXplb2Yo
VUNoYXIpXSkgPSBzdHJpbmdbaV07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yICh1aW50MzJf
dCBpID0gMDsgaSA8IHN0cmluZ0xlbmd0aDsgKytpKQotICAgICAgICAgICAgYWN0aW9ucy5hcHBl
bmQoc3RyaW5nW2ldKTsKLSAgICB9CisgICAgYXV0byB1dGY4ID0gc3RyaW5nLnV0ZjgoKTsKKyAg
ICB1aW50MzJfdCBzZXJpYWxpemVkTGVuZ3RoID0gc2l6ZW9mKHVpbnQzMl90KSArIHV0ZjgubGVu
Z3RoKCk7CisgICAgYWN0aW9ucy5yZXNlcnZlQ2FwYWNpdHkoYWN0aW9ucy5zaXplKCkgKyBzZXJp
YWxpemVkTGVuZ3RoKTsKKyAgICBhY3Rpb25zLnVuY2hlY2tlZEFwcGVuZChTcGFuPGNvbnN0IHVp
bnQ4X3Q+IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJnNlcmlhbGl6ZWRMZW5n
dGgpLCBzaXplb2Yoc2VyaWFsaXplZExlbmd0aCkgfSk7CisgICAgYWN0aW9ucy51bmNoZWNrZWRB
cHBlbmQoU3Bhbjxjb25zdCB1aW50OF90PiB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KHV0ZjguZGF0YSgpKSwgdXRmOC5sZW5ndGgoKSB9KTsKIH0KIAogc2l6ZV90IHN0cmluZ1Nl
cmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKQogewotICAgIGNvbnN0ZXhw
ciBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoYm9vbCk7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQoc3Bhbi5zaXplKCkgPj0gcHJlZml4TGVuZ3RoKTsKLSAgICBhdXRv
IHN0cmluZ0xlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5k
YXRhKCkpOwotICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSBzcGFuW3NpemVvZih1aW50MzJfdCld
OwotICAgIGlmICh3aWRlQ2hhcmFjdGVycykKLSAgICAgICAgcmV0dXJuIHByZWZpeExlbmd0aCAr
IHN0cmluZ0xlbmd0aCAqIHNpemVvZihVQ2hhcik7Ci0gICAgcmV0dXJuIHByZWZpeExlbmd0aCAr
IHN0cmluZ0xlbmd0aCAqIHNpemVvZihMQ2hhcik7CisgICAgcmV0dXJuICpyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0RGQUJ5dGVjb2RlLmgKaW5kZXggM2MwZGZhOWE1NzE4ODc2ZTZmOTgyMjdhMWFlZjVj
YTE0MTc0NWFkZS4uM2MwNjQ0OGZiY2E5ZjVlOWYyNGJmOTc4YTJhOWQ1MTM2N2ViMmEyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZS5oCkBAIC03
OCw3ICs3OCw3IEBAIGVudW0gY2xhc3MgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbiA6IHVpbnQ4X3Qg
ewogCiAvLyBUaGUgbGFzdCBmb3VyIGJpdHMgY29udGFpbiB0aGUgaW5zdHJ1Y3Rpb24gdHlwZS4K
IHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBERkFCeXRlY29kZUluc3RydWN0aW9uTWFzayA9IDB4
MEY7Ci1zdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgREZBQnl0ZWNvZGVKdW1wU2l6ZU1hc2sgPSAw
eEYwOworc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IERGQUJ5dGVjb2RlSnVtcFNpemVNYXNrID0g
MHgzMDsKIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBERkFCeXRlY29kZUZsYWdzU2l6ZU1hc2sg
PSAweDMwOwogc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IERGQUJ5dGVjb2RlQWN0aW9uU2l6ZU1h
c2sgPSAweEMwOwogCkBAIC04NywyMyArODcsMjMgQEAgdXNpbmcgREZBSGVhZGVyID0gdWludDMy
X3Q7CiAKIC8vIERGQUJ5dGVjb2RlRmxhZ3NTaXplIGFuZCBERkFCeXRlY29kZUFjdGlvblNpemUg
YXJlIHN0b3JlZCBpbiB0aGUgdG9wIGZvdXIgYml0cyBvZiB0aGUgREZBQnl0ZWNvZGVJbnN0cnVj
dGlvbnMgdGhhdCBoYXZlIGZsYWdzIGFuZCBhY3Rpb25zLgogZW51bSBjbGFzcyBERkFCeXRlY29k
ZUZsYWdzU2l6ZSA6IHVpbnQ4X3QgewotICAgIFVJbnQ4ID0gMHgxMCwKLSAgICBVSW50MTYgPSAw
eDAwLCAvLyBOZWVkcyB0byBiZSB6ZXJvIHRvIGJlIGJpbmFyeSBjb21wYXRpYmxlIHdpdGggYnl0
ZWNvZGUgY29tcGlsZWQgd2l0aCBmaXhlZC1zaXplIGZsYWdzLgorICAgIFVJbnQ4ID0gMHgwMCwK
KyAgICBVSW50MTYgPSAweDEwLAogICAgIFVJbnQyNCA9IDB4MjAsCiB9OwogZW51bSBjbGFzcyBE
RkFCeXRlY29kZUFjdGlvblNpemUgOiB1aW50OF90IHsKLSAgICBVSW50OCA9IDB4NDAsCi0gICAg
VUludDE2ID0gMHg4MCwKLSAgICBVSW50MjQgPSAweEMwLAotICAgIFVJbnQzMiA9IDB4MDAsIC8v
IE5lZWRzIHRvIGJlIHplcm8gdG8gYmUgYmluYXJ5IGNvbXBhdGlibGUgd2l0aCBieXRlY29kZSBj
b21waWxlZCB3aXRoIGZpeGVkLXNpemUgYWN0aW9ucy4KKyAgICBVSW50OCA9IDB4MDAsCisgICAg
VUludDE2ID0gMHg0MCwKKyAgICBVSW50MjQgPSAweDgwLAorICAgIFVJbnQzMiA9IDB4QzAsCiB9
OwogCiAvLyBBIERGQUJ5dGVjb2RlSnVtcFNpemUgaXMgc3RvcmVkIGluIHRoZSB0b3AgZm91ciBi
aXRzIG9mIHRoZSBERkFCeXRlY29kZUluc3RydWN0aW9ucyB0aGF0IGhhdmUgYSBqdW1wLgogZW51
bSBjbGFzcyBERkFCeXRlY29kZUp1bXBTaXplIDogdWludDhfdCB7Ci0gICAgSW50OCA9IDB4MTAs
Ci0gICAgSW50MTYgPSAweDIwLAotICAgIEludDI0ID0gMHgzMCwKLSAgICBJbnQzMiA9IDB4NDAs
CisgICAgSW50OCA9IDB4MDAsCisgICAgSW50MTYgPSAweDEwLAorICAgIEludDI0ID0gMHgyMCwK
KyAgICBJbnQzMiA9IDB4MzAsCiB9Owogc3RhdGljIGNvbnN0ZXhwciBpbnQzMl90IFVJbnQyNE1h
eCA9ICgxIDw8IDI0KSAtIDE7CiBzdGF0aWMgY29uc3RleHByIGludDMyX3QgSW50MjRNYXggPSAo
MSA8PCAyMykgLSAxOwpAQCAtMTExLDE3ICsxMTEsNiBAQCBzdGF0aWMgY29uc3RleHByIGludDMy
X3QgSW50MjRNaW4gPSAtKDEgPDwgMjMpOwogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgSW50MjRT
aXplID0gMzsKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IFVJbnQyNFNpemUgPSAzOwogCi1zdGF0
aWMgaW5saW5lIERGQUJ5dGVjb2RlSnVtcFNpemUgc21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKGlu
dDMyX3QgbG9uZ2VzdFBvc3NpYmxlSnVtcCkKLXsKLSAgICBpZiAobG9uZ2VzdFBvc3NpYmxlSnVt
cCA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDhfdD46Om1heCgpICYmIGxvbmdlc3RQb3NzaWJs
ZUp1bXAgPj0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ4X3Q+OjptaW4oKSkKLSAgICAgICAgcmV0
dXJuIERGQUJ5dGVjb2RlSnVtcFNpemU6OkludDg7Ci0gICAgaWYgKGxvbmdlc3RQb3NzaWJsZUp1
bXAgPD0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWF4KCkgJiYgbG9uZ2VzdFBvc3Np
YmxlSnVtcCA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDE2X3Q+OjptaW4oKSkKLSAgICAgICAg
cmV0dXJuIERGQUJ5dGVjb2RlSnVtcFNpemU6OkludDE2OwotICAgIGlmIChsb25nZXN0UG9zc2li
bGVKdW1wIDw9IEludDI0TWF4ICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gSW50MjRNaW4pCi0g
ICAgICAgIHJldHVybiBERkFCeXRlY29kZUp1bXBTaXplOjpJbnQyNDsKLSAgICByZXR1cm4gREZB
Qnl0ZWNvZGVKdW1wU2l6ZTo6SW50MzI7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zCiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVD
b21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29k
ZUNvbXBpbGVyLmNwcAppbmRleCBhM2JjZTgwNDBhNGVjOTUwNWI0YTRmODBlZTI3NDg5ZTMxZjIw
MWRhLi5mNjYzZWZmNWMwZTIwYmU2OWQ0MjA4ODJlZjFiNzExODg0MTk1NjY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBp
bGVyLmNwcApAQCAtMTUxLDcgKzE1MSwxOCBAQCBpbnQzMl90IERGQUJ5dGVjb2RlQ29tcGlsZXI6
Omxvbmdlc3RQb3NzaWJsZUp1bXAodWludDMyX3QgaW5zdHJ1Y3Rpb25Mb2NhdGlvbiwgdQogICAg
IEFTU0VSVChtX25vZGVTdGFydE9mZnNldHNbZGVzdGluYXRpb25Ob2RlSW5kZXhdIDw9IGluc3Ry
dWN0aW9uTG9jYXRpb24pOwogICAgIHJldHVybiBtX25vZGVTdGFydE9mZnNldHNbZGVzdGluYXRp
b25Ob2RlSW5kZXhdIC0gaW5zdHJ1Y3Rpb25Mb2NhdGlvbjsKIH0KLSAgICAKKworc3RhdGljIERG
QUJ5dGVjb2RlSnVtcFNpemUgc21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKGludDMyX3QgbG9uZ2Vz
dFBvc3NpYmxlSnVtcCkKK3sKKyAgICBpZiAobG9uZ2VzdFBvc3NpYmxlSnVtcCA8PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDhfdD46Om1heCgpICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gc3Rk
OjpudW1lcmljX2xpbWl0czxpbnQ4X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIERGQUJ5dGVj
b2RlSnVtcFNpemU6OkludDg7CisgICAgaWYgKGxvbmdlc3RQb3NzaWJsZUp1bXAgPD0gc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWF4KCkgJiYgbG9uZ2VzdFBvc3NpYmxlSnVtcCA+PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDE2X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIERGQUJ5
dGVjb2RlSnVtcFNpemU6OkludDE2OworICAgIGlmIChsb25nZXN0UG9zc2libGVKdW1wIDw9IElu
dDI0TWF4ICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gSW50MjRNaW4pCisgICAgICAgIHJldHVy
biBERkFCeXRlY29kZUp1bXBTaXplOjpJbnQyNDsKKyAgICByZXR1cm4gREZBQnl0ZWNvZGVKdW1w
U2l6ZTo6SW50MzI7Cit9CisKIHZvaWQgREZBQnl0ZWNvZGVDb21waWxlcjo6ZW1pdEp1bXAodWlu
dDMyX3Qgc291cmNlTm9kZUluZGV4LCB1aW50MzJfdCBkZXN0aW5hdGlvbk5vZGVJbmRleCkKIHsK
ICAgICB1aW50MzJfdCBpbnN0cnVjdGlvbkxvY2F0aW9uID0gbV9ieXRlY29kZS5zaXplKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5j
cHAKaW5kZXggMTlkZWNmNjc2OTQ5NGVmMzIxZjRjN2Y5YThkZDNhYTcxODY2YTZhMC4uMDk4YjMz
YWVkOTM1MzM1Yjk2ZWM0MTFjYWFlY2U3ZDBhMjQ0MTE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmNwcApAQCAtNjQsNiArNjQs
MTEgQEAgU3Bhbjxjb25zdCB1aW50OF90PiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dG9w
VVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QKICAgICByZXR1cm4gc3BhbldpdGhPZmZzZXRBbmRM
ZW5ndGgobV9kYXRhLnRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgbV9kYXRhLnRvcFVSTEZp
bHRlcnNCeXRlY29kZVNpemUpOwogfQogCitTcGFuPGNvbnN0IHVpbnQ4X3Q+IFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0OjpmcmFtZVVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHNwYW5XaXRoT2Zmc2V0QW5kTGVuZ3RoKG1fZGF0YS5mcmFtZVVSTEZpbHRlcnNCeXRl
Y29kZU9mZnNldCwgbV9kYXRhLmZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSk7Cit9CisKIFNw
YW48Y29uc3QgdWludDhfdD4gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OnNlcmlhbGl6ZWRB
Y3Rpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gc3BhbldpdGhPZmZzZXRBbmRMZW5ndGgobV9k
YXRhLmFjdGlvbnNPZmZzZXQsIG1fZGF0YS5hY3Rpb25zU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaAppbmRleCA5YmI5ZmZlZTMz
ODBlZmQ2ZTMwZTAyZTg1M2U0NTAyNmVhZWQ0YzE1Li5jMzQzNGFlZDU4MmI3Y2NkN2ZkZTZkMTQy
ZGJhMzk1NDE1YzAxZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBTcGFu
PGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlKCkgY29uc3Qg
ZmluYWw7CiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRl
Y29kZSgpIGNvbnN0IGZpbmFsOwogICAgIFNwYW48Y29uc3QgdWludDhfdD4gdG9wVVJMRmlsdGVy
c0J5dGVjb2RlKCkgY29uc3QgZmluYWw7CisgICAgU3Bhbjxjb25zdCB1aW50OF90PiBmcmFtZVVS
TEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsOwogICAgIFNwYW48Y29uc3QgdWludDhfdD4g
c2VyaWFsaXplZEFjdGlvbnMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNvbmRpdGlvbnNBcHBs
eU9ubHlUb0RvbWFpbigpIGNvbnN0IGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAKaW5kZXggODNm
YTAyZmZhYjE1NDI5YjhjNWM4ZTM1ODFkMGNiODJiNmJiZTcxMC4uZjZmMTZjZGVhMmFjOTYyMzEz
NGE3MjQxYzM0YzdiYWJkMGNiZjI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3BwCkBAIC01OCw2ICs1OCw4IEBA
IHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0
ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0Owog
ICAgIGVuY29kZXIgPDwgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKKyAgICBlbmNvZGVyIDw8
IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OworICAgIGVuY29kZXIgPDwgZnJhbWVVUkxG
aWx0ZXJzQnl0ZWNvZGVTaXplOwogfQogCiBzdGQ6Om9wdGlvbmFsPFdlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzQsNTEgKzc2LDYxIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGE6OmRlCiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0g
ICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zm
c2V0OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21h
aW5PZmZzZXQ7CiAgICAgZGVjb2RlciA+PiBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZz
ZXQ7CiAgICAgaWYgKCFjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBhY3Rp
b25zT2Zmc2V0OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBhY3Rpb25zT2Zmc2V0OwogICAg
IGRlY29kZXIgPj4gYWN0aW9uc09mZnNldDsKICAgICBpZiAoIWFjdGlvbnNPZmZzZXQpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBh
Y3Rpb25zU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gYWN0aW9uc1NpemU7CiAgICAg
ZGVjb2RlciA+PiBhY3Rpb25zU2l6ZTsKICAgICBpZiAoIWFjdGlvbnNTaXplKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gZmlsdGVy
c1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CisgICAgc3RkOjpvcHRpb25hbDxzaXpl
X3Q+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogICAgIGRlY29kZXIg
Pj4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CiAgICAgaWYgKCFmaWx0
ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gZmlsdGVyc1dp
dGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGRlY29kZXIgPj4gZmlsdGVyc1dpdGhv
dXRDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGlmICghZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7
CisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2Rl
T2Zmc2V0OwogICAgIGRlY29kZXIgPj4gZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZz
ZXQ7CiAgICAgaWYgKCFmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGRlY29kZXIgPj4gZmls
dGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGlmICghZmlsdGVyc1dpdGhDb25k
aXRpb25zQnl0ZWNvZGVTaXplKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAg
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OworICAg
IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQ7CiAgICAg
ZGVjb2RlciA+PiB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQ7CiAgICAgaWYgKCF0b3BVUkxG
aWx0ZXJzQnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAg
ICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAg
IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOwogICAgIGRl
Y29kZXIgPj4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKICAgICBpZiAoIXRvcFVSTEZpbHRl
cnNCeXRlY29kZVNpemUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAgICBzdGQ6
Om9wdGlvbmFsPHNpemVfdD4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQ7CisgICAgZGVj
b2RlciA+PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldDsKKyAgICBpZiAoIWZyYW1lVVJM
RmlsdGVyc0J5dGVjb2RlT2Zmc2V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKKyAg
ICBkZWNvZGVyID4+IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKKyAgICBpZiAoIWZyYW1l
VVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwog
ICAgIHJldHVybiB7ewogICAgICAgICBXVEZNb3ZlKCppZGVudGlmaWVyKSwKICAgICAgICAgZGF0
YS5yZWxlYXNlTm9uTnVsbCgpLApAQCAtMTMwLDcgKzE0Miw5IEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGE6OmRlCiAgICAgICAgIFdURk1vdmUoKmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zm
c2V0KSwKICAgICAgICAgV1RGTW92ZSgqZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXpl
KSwKICAgICAgICAgV1RGTW92ZSgqdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KSwKLSAgICAg
ICAgV1RGTW92ZSgqdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKKyAgICAgICAgV1RGTW92ZSgq
dG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSksCisgICAgICAgIFdURk1vdmUoKmZyYW1lVVJMRmls
dGVyc0J5dGVjb2RlT2Zmc2V0KSwKKyAgICAgICAgV1RGTW92ZSgqZnJhbWVVUkxGaWx0ZXJzQnl0
ZWNvZGVTaXplKQogICAgIH19OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCmluZGV4IGE0ODAzNWJmYWQ4NmNhNTgy
OGUyMTRhMmU0YzNmY2U1Y2FmYzk2Y2QuLjJjYzZiNDFhY2IxZjE3M2I2MTFkMDYxYzFjM2FmNTZm
M2YwY2MwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YS5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgewogcHVibGljOgotICAg
IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YShTdHJpbmcmJiBpZGVudGlmaWVyLCBSZWY8
U2hhcmVkTWVtb3J5PiYmIGRhdGEsIHVuc2lnbmVkIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFp
bk9mZnNldCwgdW5zaWduZWQgYWN0aW9uc09mZnNldCwgdW5zaWduZWQgYWN0aW9uc1NpemUsIHVu
c2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBm
aWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRo
Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNC
eXRlY29kZVNpemUsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgdW5zaWdu
ZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKKyAgICBXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEoU3RyaW5nJiYgaWRlbnRpZmllciwgUmVmPFNoYXJlZE1lbW9yeT4mJiBkYXRhLCBz
aXplX3QgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0LCBzaXplX3QgYWN0aW9uc09m
ZnNldCwgc2l6ZV90IGFjdGlvbnNTaXplLCBzaXplX3QgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVPZmZzZXQsIHNpemVfdCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNp
emUsIHNpemVfdCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgc2l6ZV90IHRvcFVSTEZpbHRlcnNCeXRl
Y29kZU9mZnNldCwgc2l6ZV90IHRvcFVSTEZpbHRlcnNCeXRlY29kZVNpemUsIHNpemVfdCBmcmFt
ZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2Rl
U2l6ZSkKICAgICAgICAgOiBpZGVudGlmaWVyKFdURk1vdmUoaWRlbnRpZmllcikpCiAgICAgICAg
ICwgZGF0YShXVEZNb3ZlKGRhdGEpKQogICAgICAgICAsIGNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbk9mZnNldChjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQpCkBAIC01Myw2ICs1
Myw4IEBAIHB1YmxpYzoKICAgICAgICAgLCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNp
emUoZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplKQogICAgICAgICAsIHRvcFVSTEZp
bHRlcnNCeXRlY29kZU9mZnNldCh0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQpCiAgICAgICAg
ICwgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSh0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQor
ICAgICAgICAsIGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KGZyYW1lVVJMRmlsdGVyc0J5
dGVjb2RlT2Zmc2V0KQorICAgICAgICAsIGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZShmcmFt
ZVVSTEZpbHRlcnNCeXRlY29kZVNpemUpCiAgICAgewogICAgIH0KIApAQCAtNjEsMTUgKzYzLDE3
IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBpZGVudGlmaWVyOwogICAgIFJlZjxTaGFyZWRNZW1v
cnk+IGRhdGE7Ci0gICAgdW5zaWduZWQgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0
IHsgMCB9OwotICAgIHVuc2lnbmVkIGFjdGlvbnNPZmZzZXQgeyAwIH07Ci0gICAgdW5zaWduZWQg
YWN0aW9uc1NpemUgeyAwIH07Ci0gICAgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVPZmZzZXQgeyAwIH07Ci0gICAgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplIHsgMCB9OwotICAgIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9u
c0J5dGVjb2RlT2Zmc2V0IHsgMCB9OwotICAgIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSB7IDAgfTsKLSAgICB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVP
ZmZzZXQgeyAwIH07Ci0gICAgdW5zaWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAg
fTsKKyAgICBzaXplX3QgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0IHsgMCB9Owor
ICAgIHNpemVfdCBhY3Rpb25zT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBhY3Rpb25zU2l6ZSB7
IDAgfTsKKyAgICBzaXplX3QgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQg
eyAwIH07CisgICAgc2l6ZV90IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSB7
IDAgfTsKKyAgICBzaXplX3QgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQgeyAw
IH07CisgICAgc2l6ZV90IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSB7IDAgfTsK
KyAgICBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0IHsgMCB9OworICAgIHNpemVf
dCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplIHsgMCB9OworICAgIHNpemVfdCBmcmFtZVVSTEZp
bHRlcnNCeXRlY29kZU9mZnNldCB7IDAgfTsKKyAgICBzaXplX3QgZnJhbWVVUkxGaWx0ZXJzQnl0
ZWNvZGVTaXplIHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAKaW5kZXggM2M3OWI0MTkyZjE5
YWExYzFjMGM2YzQxZTExN2E2N2QzZGVlOTNiNy4uNmQzYjdmZTU2MjU2YWVhOGNmNWUxNTQwM2Vk
ZmMwMWVlMzAyMjNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCkBAIC05NiwxMCArOTYsMTEgQEAgc3RhdGlj
IFdURjo6U3RyaW5nIGNvbnN0cnVjdGVkUGF0aChjb25zdCBXVEY6OlN0cmluZyYgYmFzZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGkKIAogLy8gVGhlIHNpemUgYW5kIG9mZnNldCBvZiB0aGUgZGVuc2Vs
eSBwYWNrZWQgYnl0ZXMgaW4gdGhlIGZpbGUsIG5vdCBzaXplb2YgYW5kIG9mZnNldG9mLCB3aGlj
aCB3b3VsZAogLy8gcmVwcmVzZW50IHRoZSBzaXplIGFuZCBvZmZzZXQgb2YgdGhlIHN0cnVjdHVy
ZSBpbiBtZW1vcnksIHBvc3NpYmx5IHdpdGggY29tcGlsZXItYWRkZWQgcGFkZGluZy4KLWNvbnN0
IHNpemVfdCBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSA9IDIgKiBzaXplb2YodWludDMy
X3QpICsgNSAqIHNpemVvZih1aW50NjRfdCk7Ci1jb25zdCBzaXplX3QgQ29uZGl0aW9uc0FwcGx5
T25seVRvRG9tYWluT2Zmc2V0ID0gc2l6ZW9mKHVpbnQzMl90KSArIDUgKiBzaXplb2YodWludDY0
X3QpOworY29uc3Qgc2l6ZV90IEN1cnJlbnRWZXJzaW9uRmlsZUhlYWRlclNpemUgPSAyICogc2l6
ZW9mKHVpbnQzMl90KSArIDYgKiBzaXplb2YodWludDY0X3QpOworY29uc3Qgc2l6ZV90IENvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCA9IHNpemVvZih1aW50MzJfdCkgKyA2ICogc2l6
ZW9mKHVpbnQ2NF90KTsKIAogc3RydWN0IENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIHsKKyAgICBz
aXplX3QgaGVhZGVyU2l6ZSB7IEN1cnJlbnRWZXJzaW9uRmlsZUhlYWRlclNpemUgfTsKICAgICB1
aW50MzJfdCB2ZXJzaW9uIHsgQ29udGVudFJ1bGVMaXN0U3RvcmU6OkN1cnJlbnRDb250ZW50UnVs
ZUxpc3RGaWxlVmVyc2lvbiB9OwogICAgIHVpbnQ2NF90IHNvdXJjZVNpemUgeyAwIH07CiAgICAg
dWludDY0X3QgYWN0aW9uc1NpemUgeyAwIH07CkBAIC0xMDcsMTUgKzEwOCwxNyBAQCBzdHJ1Y3Qg
Q29udGVudFJ1bGVMaXN0TWV0YURhdGEgewogICAgIHVpbnQ2NF90IGZpbHRlcnNXaXRoQ29uZGl0
aW9uc0J5dGVjb2RlU2l6ZSB7IDAgfTsKICAgICB1aW50NjRfdCBjb25kaXRpb25lZEZpbHRlcnNC
eXRlY29kZVNpemUgeyAwIH07CiAgICAgdWludDMyX3QgY29uZGl0aW9uc0FwcGx5T25seVRvRG9t
YWluIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemUg
eyAwIH07CiAgICAgCiAgICAgc2l6ZV90IGZpbGVTaXplKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZQorICAgICAgICByZXR1cm4gaGVh
ZGVyU2l6ZQogICAgICAgICAgICAgKyBzb3VyY2VTaXplCiAgICAgICAgICAgICArIGFjdGlvbnNT
aXplCiAgICAgICAgICAgICArIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZQog
ICAgICAgICAgICAgKyBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUKLSAgICAgICAg
ICAgICsgY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgICAgICAgICAgKyBjb25k
aXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemUKKyAgICAgICAgICAgICsgZnJhbWVVUkxGaWx0ZXJz
Qnl0ZWNvZGVTaXplOwogICAgIH0KIH07CiAKQEAgLTEzMCw4ICsxMzMsOSBAQCBzdGF0aWMgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEgZW5jb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEoY29u
c3QgQ29udGVudFJ1bAogICAgIGVuY29kZXIgPDwgbWV0YURhdGEuZmlsdGVyc1dpdGhDb25kaXRp
b25zQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgbWV0YURhdGEuY29uZGl0aW9uZWRGaWx0
ZXJzQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgbWV0YURhdGEuY29uZGl0aW9uc0FwcGx5
T25seVRvRG9tYWluOworICAgIGVuY29kZXIgPDwgbWV0YURhdGEuZnJhbWVVUkxGaWx0ZXJzQnl0
ZWNvZGVTaXplOwogCi0gICAgQVNTRVJUKGVuY29kZXIuYnVmZmVyU2l6ZSgpID09IENvbnRlbnRS
dWxlTGlzdEZpbGVIZWFkZXJTaXplKTsKKyAgICBBU1NFUlQoZW5jb2Rlci5idWZmZXJTaXplKCkg
PT0gQ3VycmVudFZlcnNpb25GaWxlSGVhZGVyU2l6ZSk7CiAgICAgcmV0dXJuIFdlYktpdDo6TmV0
d29ya0NhY2hlOjpEYXRhKGVuY29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsK
IH0KIApAQCAtMTQ1LDY2ICsxNDksNjggQEAgdGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3Qg
V2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBGdW5jdGlvbjxib29sKFMKICAgICBm
dW5jdGlvbih7IGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSB9KTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBk
ZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YShjb25zdCBUJiBmaWxlRGF0YSkKK3N0YXRpYyBz
dGQ6Om9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVsZUxp
c3RNZXRhRGF0YShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEpCiB7
Ci0gICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CiAgICAgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEg
bWV0YURhdGE7Ci0gICAgZ2V0RGF0YShmaWxlRGF0YSwgWyZtZXRhRGF0YSwgJnN1Y2Nlc3MsICZm
aWxlRGF0YV0oU3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKSB7Ci0gICAgICAgIC8vIFRoZSBmaWxl
IGRhdGEgc2hvdWxkIGJlIG1hcHBlZCBpbnRvIG9uZSBjb250aW51b3VzIG1lbW9yeSBzZWdtZW50
IHNvIHRoZSBzaXplCi0gICAgICAgIC8vIHBhc3NlZCB0byB0aGUgYXBwbGllciBzaG91bGQgYWx3
YXlzIGVxdWFsIHRoZSBkYXRhIHNpemUuCi0gICAgICAgIGlmIChzcGFuLnNpemUoKSAhPSBmaWxl
RGF0YS5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byBzcGFuID0g
ZmlsZURhdGEuc3BhbigpOwogCi0gICAgICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgZGVj
b2RlcihzcGFuKTsKLSAgICAgICAgCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZl
cnNpb247Ci0gICAgICAgIGRlY29kZXIgPj4gdmVyc2lvbjsKLSAgICAgICAgaWYgKCF2ZXJzaW9u
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXRhRGF0YS52ZXJzaW9uID0g
V1RGTW92ZSgqdmVyc2lvbik7CisgICAgV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlciBkZWNvZGVy
KHNwYW4pOworICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZlcnNpb247CisgICAg
ZGVjb2RlciA+PiB2ZXJzaW9uOworICAgIGlmICghdmVyc2lvbikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBtZXRhRGF0YS52ZXJzaW9uID0gV1RGTW92ZSgqdmVyc2lvbik7CiAK
LSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gc291cmNlU2l6ZTsKLSAgICAgICAgZGVj
b2RlciA+PiBzb3VyY2VTaXplOwotICAgICAgICBpZiAoIXNvdXJjZVNpemUpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLnNvdXJjZVNpemUgPSBXVEZNb3ZlKCpz
b3VyY2VTaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBzb3VyY2VTaXplOworICAg
IGRlY29kZXIgPj4gc291cmNlU2l6ZTsKKyAgICBpZiAoIXNvdXJjZVNpemUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgbWV0YURhdGEuc291cmNlU2l6ZSA9IFdURk1vdmUoKnNv
dXJjZVNpemUpOwogCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGFjdGlvbnNTaXpl
OwotICAgICAgICBkZWNvZGVyID4+IGFjdGlvbnNTaXplOwotICAgICAgICBpZiAoIWFjdGlvbnNT
aXplKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXRhRGF0YS5hY3Rpb25z
U2l6ZSA9IFdURk1vdmUoKmFjdGlvbnNTaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBhY3Rpb25zU2l6ZTsKKyAgICBkZWNvZGVyID4+IGFjdGlvbnNTaXplOworICAgIGlmICghYWN0
aW9uc1NpemUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgbWV0YURhdGEuYWN0
aW9uc1NpemUgPSBXVEZNb3ZlKCphY3Rpb25zU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplOwotICAgICAg
ICBkZWNvZGVyID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKLSAgICAg
ICAgaWYgKCFmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIgPj4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVTaXplOworICAgIGlmICghZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVT
aXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLmZpbHRlcnNX
aXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVyID4+IGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFmaWx0ZXJzV2l0
aENvbmRpdGlvbnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUo
KmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIg
Pj4gZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOworICAgIGlmICghZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUo
KmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOwotICAgICAgICBk
ZWNvZGVyID4+IGNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFj
b25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1v
dmUoKmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIgPj4g
Y29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGlmICghY29uZGl0aW9uZWRGaWx0
ZXJzQnl0ZWNvZGVTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFE
YXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmNvbmRpdGlvbmVk
RmlsdGVyc0J5dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4g
Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwotICAgICAgICBkZWNvZGVyID4+IGNvbmRpdGlv
bnNBcHBseU9ubHlUb0RvbWFpbjsKLSAgICAgICAgaWYgKCFjb25kaXRpb25zQXBwbHlPbmx5VG9E
b21haW4pCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLmNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IFdURk1vdmUoKmNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbik7CisgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gY29uZGl0aW9uc0FwcGx5T25seVRv
RG9tYWluOworICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAg
IGlmICghY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIG1ldGFEYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IFdURk1v
dmUoKmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbik7CiAKLSAgICAgICAgc3VjY2VzcyA9IHRy
dWU7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9KTsKLSAgICBpZiAoIXN1Y2Nlc3MpCisg
ICAgaWYgKG1ldGFEYXRhLnZlcnNpb24gPCAxMikgeworICAgICAgICAvLyBCZWZvcmUgdmVyc2lv
biAxMiwgdGhlcmUgd2FzIG5vIGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSwKKyAgICAgICAg
Ly8gYW5kIHdlIHdpbGwgb25seSB1c2UgdGhlIG1ldGFkYXRhIHRvIGdldCB0aGUgc291cmNlIGFu
ZCByZWNvbXBpbGUgaXQgdG8gdGhlIGN1cnJlbnQgdmVyc2lvbi4KKyAgICAgICAgbWV0YURhdGEu
aGVhZGVyU2l6ZSA9IDIgKiBzaXplb2YodWludDMyX3QpICsgNSAqIHNpemVvZih1aW50NjRfdCk7
CisgICAgICAgIHJldHVybiBtZXRhRGF0YTsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7CisgICAgZGVjb2RlciA+PiBmcmFt
ZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7CisgICAgaWYgKCFmcmFtZVVSTEZpbHRlcnNCeXRlY29k
ZVNpemUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgbWV0YURhdGEuZnJhbWVV
UkxGaWx0ZXJzQnl0ZWNvZGVTaXplID0gV1RGTW92ZSgqZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVT
aXplKTsKKwogICAgIHJldHVybiBtZXRhRGF0YTsKIH0KIApAQCAtMzU5LDcgKzM2NSw3IEBAIHN0
YXRpYyBFeHBlY3RlZDxNYXBwZWREYXRhLCBzdGQ6OmVycm9yX2NvZGU+IGNvbXBpbGVkVG9GaWxl
KFdURjo6U3RyaW5nJiYganNvbiwKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CiAgICAgfQogICAgIAotICAg
IGNoYXIgaW52YWxpZEhlYWRlcltDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZV07CisgICAg
Y2hhciBpbnZhbGlkSGVhZGVyW0N1cnJlbnRWZXJzaW9uRmlsZUhlYWRlclNpemVdOwogICAgIG1l
bXNldChpbnZhbGlkSGVhZGVyLCAweEZGLCBzaXplb2YoaW52YWxpZEhlYWRlcikpOwogICAgIC8v
IFRoaXMgaGVhZGVyIHdpbGwgYmUgcmV3cml0dGVuIGluIENvbXBpbGF0aW9uQ2xpZW50OjpmaW5h
bGl6ZS4KICAgICBpZiAod3JpdGVUb0ZpbGUodGVtcG9yYXJ5RmlsZUhhbmRsZSwgaW52YWxpZEhl
YWRlciwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKSA9PSAtMSkgewpAQCAtNDEwLDcgKzQxNiw3IEBA
IHN0YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBX
VEY6OlN0cmluZyYgaWRlbnRpZmllciwKICAgICAvLyBoYXMgYmVlbiBhbHJlYWR5IG1hcHBlZCwg
dGhlcmVmb3JlIHRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpIGNhbm5vdCBmYWlsLgogICAgIFJFTEVB
U0VfQVNTRVJUKHNoYXJlZE1lbW9yeSk7CiAKLSAgICBjb25zdCBzaXplX3QgaGVhZGVyQW5kU291
cmNlU2l6ZSA9IENvbnRlbnRSdWxlTGlzdEZpbGVIZWFkZXJTaXplICsgZGF0YS5tZXRhRGF0YS5z
b3VyY2VTaXplOworICAgIGNvbnN0IHNpemVfdCBoZWFkZXJBbmRTb3VyY2VTaXplID0gZGF0YS5t
ZXRhRGF0YS5oZWFkZXJTaXplICsgZGF0YS5tZXRhRGF0YS5zb3VyY2VTaXplOwogICAgIGF1dG8g
Y29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhID0gV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdERhdGEoCiAgICAgICAgIFdURjo6U3RyaW5nKGlkZW50aWZpZXIpLAogICAgICAgICBz
aGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSwKQEAgLTQyOCw3ICs0MzQsMTMgQEAgc3RhdGlj
IFJlZjxBUEk6OkNvbnRlbnRSdWxlTGlzdD4gY3JlYXRlRXh0ZW5zaW9uKGNvbnN0IFdURjo6U3Ry
aW5nJiBpZGVudGlmaWVyLAogICAgICAgICAgICAgKyBkYXRhLm1ldGFEYXRhLmFjdGlvbnNTaXpl
CiAgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVTaXplCiAgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhDb25kaXRp
b25zQnl0ZWNvZGVTaXplLAotICAgICAgICBkYXRhLm1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVy
c0J5dGVjb2RlU2l6ZQorICAgICAgICBkYXRhLm1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5
dGVjb2RlU2l6ZSwKKyAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZQorICAgICAgICAgICAgKyBk
YXRhLm1ldGFEYXRhLmFjdGlvbnNTaXplCisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmls
dGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplCisgICAgICAgICAgICArIGRhdGEubWV0
YURhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplCisgICAgICAgICAgICArIGRh
dGEubWV0YURhdGEuY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplLAorICAgICAgICBkYXRh
Lm1ldGFEYXRhLmZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZQogICAgICk7CiAgICAgYXV0byBj
b21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSkpOwogICAgIHJl
dHVybiBBUEk6OkNvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29tcGlsZWRDb250ZW50
UnVsZUxpc3QpLCBXVEZNb3ZlKGRhdGEuZGF0YSkpOwpAQCAtNDQyLDEwICs0NTQsMTEgQEAgc3Rh
dGljIFdURjo6U3RyaW5nIGdldENvbnRlbnRSdWxlTGlzdFNvdXJjZUZyb21NYXBwZWRGaWxlKGNv
bnN0IE1hcHBlZERhdGEmIG1hcHAKICAgICBjYXNlIDk6CiAgICAgY2FzZSAxMDoKICAgICBjYXNl
IDExOgorICAgIGNhc2UgMTI6CiAgICAgICAgIGlmICghbWFwcGVkRGF0YS5tZXRhRGF0YS5zb3Vy
Y2VTaXplKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgYm9vbCBpczhCaXQgPSBt
YXBwZWREYXRhLmRhdGEuZGF0YSgpW0NvbnRlbnRSdWxlTGlzdEZpbGVIZWFkZXJTaXplXTsKLSAg
ICAgICAgc2l6ZV90IHN0YXJ0ID0gQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemUgKyBzaXpl
b2YoYm9vbCk7CisgICAgICAgIGJvb2wgaXM4Qml0ID0gbWFwcGVkRGF0YS5kYXRhLmRhdGEoKVtt
YXBwZWREYXRhLm1ldGFEYXRhLmhlYWRlclNpemVdOworICAgICAgICBzaXplX3Qgc3RhcnQgPSBt
YXBwZWREYXRhLm1ldGFEYXRhLmhlYWRlclNpemUgKyBzaXplb2YoYm9vbCk7CiAgICAgICAgIHNp
emVfdCBsZW5ndGggPSBtYXBwZWREYXRhLm1ldGFEYXRhLnNvdXJjZVNpemUgLSBzaXplb2YoYm9v
bCk7CiAgICAgICAgIGlmIChpczhCaXQpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpTdHJpbmco
bWFwcGVkRGF0YS5kYXRhLmRhdGEoKSArIHN0YXJ0LCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAppbmRleCA4
ODIwNGYwMDEzNjc4NjA0NWE1YjMyYTczYzY3OGEwYmE4NTA2ODFjLi43ZmMwNTQ1N2U2NGNmNTg5
YjBmYjBlN2UwMzZmNjkwZmEyYzE3YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaApAQCAtNTQsMTAgKzU0LDkgQEAg
cHVibGljOgogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgLy8gVGhpcyBzaG91
bGQgYmUgaW5jcmVtZW50ZWQgZXZlcnkgdGltZSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGlzIG1hZGUg
dG8gdGhlIGJ5dGVjb2RlLCBmaWxlIGZvcm1hdCwgZXRjLgogICAgIC8vIHRvIHByZXZlbnQgY3Jh
c2hpbmcgd2hpbGUgbG9hZGluZyBvbGQgZGF0YS4KLSAgICAvLyBBbHNvIHVwZGF0ZSBDb250ZW50
UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0U291cmNlIHRvIGJlIGFibGUgdG8gZmlu
ZCB0aGUgb3JpZ2luYWwgSlNPTgorICAgIC8vIEFsc28gdXBkYXRlIGdldENvbnRlbnRSdWxlTGlz
dFNvdXJjZUZyb21NYXBwZWRGaWxlIHRvIGJlIGFibGUgdG8gZmluZCB0aGUgb3JpZ2luYWwgSlNP
TgogICAgIC8vIHNvdXJjZSBmcm9tIG9sZCB2ZXJzaW9ucy4KLSAgICAvLyBVcGRhdGUgZ2V0Q29u
dGVudFJ1bGVMaXN0U291cmNlRnJvbU1hcHBlZEZpbGUgd2l0aCB0aGlzLgotICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludDMyX3QgQ3VycmVudENvbnRlbnRSdWxlTGlzdEZpbGVWZXJzaW9uID0gMTE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVMaXN0Rmls
ZVZlcnNpb24gPSAxMjsKIAogICAgIHN0YXRpYyBDb250ZW50UnVsZUxpc3RTdG9yZSYgZGVmYXVs
dFN0b3JlKCk7CiAgICAgc3RhdGljIFJlZjxDb250ZW50UnVsZUxpc3RTdG9yZT4gc3RvcmVXaXRo
UGF0aChjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MGY1ODU2ZDBiZGZmZjdhZjQ1ZjgwN2Uw
M2RjNDBhZTNlOGZjYTUxLi4xNzE3NzE2ZDg3YmU4OWRkODM4ZjQ5YWFlZTJlNWNkYWM2NTc0Y2Fh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMjEtMTItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgcm9vbSBmb3IgbW9yZSBieXRlY29kZSBpbiBXS0Nv
bnRlbnRSdWxlTGlzdCBmaWxlIGZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorCiAyMDIxLTEyLTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFNwYW4gaW5zdGVhZCBvZiBwb2ludGVyL2xl
bmd0aCBpbiBDb21waWxlZENvbnRlbnRFeHRlbnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGNkMWIw
ODk5NTdmZjFlYjI4NWY1ZGY1ZDllNzhhMDdlNmUwMzcxOGIuLmM4M2U4NzgyMDM2MTMwMmRlZmFh
NWY0ZTEzYjNlZTkwZjczMGY4MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtNjYsNiArNjYsNyBAQCBz
dHJ1Y3QgQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSB7CiAgICAgVmVjdG9yPENvbnRlbnRF
eHRlbnNpb25zOjpERkFCeXRlY29kZT4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zOwogICAgIFZl
Y3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+IGZpbHRlcnNXaXRoQ29uZGl0aW9u
czsKICAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlPiB0b3BVUkxGaWx0
ZXJzOworICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+IGZyYW1lVVJM
RmlsdGVyczsKICAgICBib29sIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiB7IGZhbHNlIH07
CiB9OwogCkBAIC0xNDcsNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBTcGFuPGNvbnN0IHVpbnQ4
X3Q+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4geyBtX2RhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zLmRhdGEoKSwgbV9kYXRhLmZpbHRl
cnNXaXRob3V0Q29uZGl0aW9ucy5zaXplKCkgfTsgfQogICAgIFNwYW48Y29uc3QgdWludDhfdD4g
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB7IG1f
ZGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnMuZGF0YSgpLCBtX2RhdGEuZmlsdGVyc1dpdGhDb25k
aXRpb25zLnNpemUoKSB9OyB9CiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiB0b3BVUkxGaWx0ZXJz
Qnl0ZWNvZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB7IG1fZGF0YS50b3BVUkxGaWx0ZXJzLmRh
dGEoKSwgbV9kYXRhLnRvcFVSTEZpbHRlcnMuc2l6ZSgpIH07IH0KKyAgICBTcGFuPGNvbnN0IHVp
bnQ4X3Q+IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyBt
X2RhdGEuZnJhbWVVUkxGaWx0ZXJzLmRhdGEoKSwgbV9kYXRhLmZyYW1lVVJMRmlsdGVycy5zaXpl
KCkgfTsgfQogICAgIGJvb2wgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9kYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsgfQogCiAgICAg
SW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRlbnNpb24oQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
RGF0YSYmIGRhdGEpCkBAIC05NjYsNyArOTY4LDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25U
ZXN0LCBTdHJpbmdDb21iaW5pbmcpCiAgICAgQVNTRVJUX0VRKHNlcXVlbmNlSW5zdGFuY2VzKGRh
dGEuYWN0aW9ucywgIkFBQSIpLCAyKTsKICAgICBBU1NFUlRfRVEoc2VxdWVuY2VJbnN0YW5jZXMo
ZGF0YS5hY3Rpb25zLCAiR0dHIiksIDEpOwogCi0gICAgQVNTRVJUX0VRKGRhdGEuYWN0aW9ucy5z
aXplKCksIDc4dSk7CisgICAgQVNTRVJUX0VRKGRhdGEuYWN0aW9ucy5zaXplKCksIDcydSk7CiAg
ICAgQVNTRVJUX0VRKGRhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zLnNpemUoKSwgMjg4dSk7
CiAgICAgQVNTRVJUX0VRKGRhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zLnNpemUoKSwgNXUpOwog
ICAgIEFTU0VSVF9FUShkYXRhLnRvcFVSTEZpbHRlcnMuc2l6ZSgpLCA1dSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445797</attachid>
            <date>2021-12-02 17:12:34 -0800</date>
            <delta_ts>2021-12-02 21:51:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233780-20211202171233.patch</filename>
            <type>text/plain</type>
            <size>35169</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZjZmM1ZWFjNDkzNTA4
YTBhNzA1MTU4NWNhMGI0NmViMmYxY2RlYS4uOTQ5MGFjZjUzOWYwNDg0NmIyOWY1OGNiMmZhYzg2
YmQ4NTZkYTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEyLTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHJv
b20gZm9yIG1vcmUgYnl0ZWNvZGUgaW4gV0tDb250ZW50UnVsZUxpc3QgZmlsZSBmb3JtYXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzc4MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIYXRjaGVyLgorCisgICAgICAgIEZvciByZGFyOi8vNzIy
MDMzNTIgd2Ugd2lsbCBuZWVkIG1vcmUgYnl0ZWNvZGUuICBUaGlzIGFkZHMgcm9vbSBmb3IgaXQg
d2l0aG91dCBwdXR0aW5nIGFueXRoaW5nIHRoZXJlIHlldC4KKyAgICAgICAgQXMgbG9uZyBhcyB3
ZSBhcmUgdXBkYXRpbmcgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBmb3JjaW5nIGEgcmVjb21waWxl
LCBJJ20gbWFraW5nIHRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbgorICAgICAgICBtb3JlIGxpa2Ug
dGhlIG90aGVyIGFjdGlvbiBzZXJpYWxpemF0aW9ucyB0byBiZSBhYmxlIHRvIHNpbXBsaWZ5IHRo
ZSBpbnRlcnByZXRlciBsYXRlci4gIEknbSBhbHNvIHNoaWZ0aW5nCisgICAgICAgIGFyb3VuZCBh
IGZldyBiaXRzIGluIHRoZSBieXRlY29kZSB0byBiZSBtb3JlIG9yZ2FuaXplZCBhbmQgcmVhc29u
YWJsZS4KKworICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHJp
bmdTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpkZXNlcmlhbGl6ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6c2VyaWFsaXplU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpzdHJpbmdTZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9E
RkFCeXRlY29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnNtYWxs
ZXN0UG9zc2libGVKdW1wU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvREZBQnl0ZWNvZGVDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6c21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKToKKwogMjAyMS0xMi0wMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBTcGFu
IGluc3RlYWQgb2YgcG9pbnRlci9sZW5ndGggaW4gQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDVmNDZlZjZjNTdiNzc4ZTkzYjBjZThiMmVkYWZmMzBmMjc0ZTdmOTYuLmUwMDU3
NzJhYTEwYzIzYmMxODhmMWIzNzFmMTRiMWI5ZGFkMTlmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMjEtMTItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBBZGQgcm9vbSBmb3IgbW9yZSBieXRlY29kZSBpbiBXS0NvbnRlbnRS
dWxlTGlzdCBmaWxlIGZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZnJhbWVVUkxGaWx0ZXJzQnl0
ZWNvZGUgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVM
aXN0TWV0YURhdGE6OmZpbGVTaXplIGNvbnN0KToKKyAgICAgICAgKEFQSTo6ZW5jb2RlQ29udGVu
dFJ1bGVMaXN0TWV0YURhdGEpOgorICAgICAgICAoQVBJOjpkZWNvZGVDb250ZW50UnVsZUxpc3RN
ZXRhRGF0YSk6CisgICAgICAgIChBUEk6OmNvbXBpbGVkVG9GaWxlKToKKyAgICAgICAgKEFQSTo6
Y3JlYXRlRXh0ZW5zaW9uKToKKyAgICAgICAgKEFQSTo6Z2V0Q29udGVudFJ1bGVMaXN0U291cmNl
RnJvbU1hcHBlZEZpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVM
aXN0U3RvcmUuaDoKKwogMjAyMS0xMi0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBTcGFuIGluc3RlYWQgb2YgcG9pbnRlci9sZW5n
dGggaW4gQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCmluZGV4
IDhlMzcwYzJmODE2YTJiYmJjNTljODRmODVhODNlMTA1ZGQzZTFhMDAuLjQ0MjQ2ZjZhZDhiMzY1
Y2UxZjViNWQzMmIyNjRkMWJhM2Y4NGNhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCkBAIC00
MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNwYW48Y29uc3QgdWludDhfdD4gZmls
dGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBT
cGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25zdCB1aW50OF90PiB0b3BVUkxGaWx0ZXJzQnl0ZWNv
ZGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZyYW1lVVJM
RmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25zdCB1aW50
OF90PiBzZXJpYWxpemVkQWN0aW9ucygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHJpbmdTZXJp
YWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25TdHJpbmdTZXJpYWxpemF0aW9uLmNwcAppbmRleCA2YzdkYWU2NGM5MjNlNjUxMzJh
OWYxZjhlNzUxNGMyNjNmNTBhODAzLi44OGNhZmU1OGFkNTc3MmFhZjQzMzJiZTA2YTFkNjEwZTNj
Nzc2YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uU3RyaW5nU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0cmluZ1NlcmlhbGl6YXRpb24uY3Bw
CkBAIC0zMiw1MSArMzIsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
IHsKIAogU3RyaW5nIGRlc2VyaWFsaXplU3RyaW5nKFNwYW48Y29uc3QgdWludDhfdD4gc3BhbikK
IHsKLSAgICBjb25zdCBhdXRvKiBhY3Rpb25zID0gc3Bhbi5kYXRhKCk7Ci0gICAgY29uc3QgYXV0
byBhY3Rpb25zTGVuZ3RoID0gc3Bhbi5zaXplKCk7Ci0gICAgYXV0byBwcmVmaXhMZW5ndGggPSBz
aXplb2YodWludDMyX3QpICsgc2l6ZW9mKGJvb2wpOwotICAgIGF1dG8gc3RyaW5nU3RhcnRJbmRl
eCA9IHByZWZpeExlbmd0aDsKLSAgICBSRUxFQVNFX0FTU0VSVChhY3Rpb25zTGVuZ3RoID49IHN0
cmluZ1N0YXJ0SW5kZXgpOwotICAgIHVpbnQzMl90IHN0cmluZ0xlbmd0aCA9ICpyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oYWN0aW9ucyk7Ci0gICAgYm9vbCB3aWRlQ2hhcmFjdGVy
cyA9IGFjdGlvbnNbc2l6ZW9mKHVpbnQzMl90KV07Ci0KLSAgICBpZiAod2lkZUNoYXJhY3RlcnMp
IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWN0aW9uc0xlbmd0aCA+PSBzdHJpbmdTdGFydElu
ZGV4ICsgc3RyaW5nTGVuZ3RoICogc2l6ZW9mKFVDaGFyKSk7Ci0gICAgICAgIHJldHVybiBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KCZhY3Rpb25zW3N0cmluZ1N0YXJ0SW5k
ZXhdKSwgc3RyaW5nTGVuZ3RoKTsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlQoYWN0aW9uc0xl
bmd0aCA+PSBzdHJpbmdTdGFydEluZGV4ICsgc3RyaW5nTGVuZ3RoICogc2l6ZW9mKExDaGFyKSk7
Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oJmFjdGlv
bnNbc3RyaW5nU3RhcnRJbmRleF0pLCBzdHJpbmdMZW5ndGgpOworICAgIGF1dG8gc2VyaWFsaXpl
ZExlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHNwYW4uZGF0YSgpICsgc2l6ZW9mKHVpbnQz
Ml90KSwgc2VyaWFsaXplZExlbmd0aCAtIHNpemVvZih1aW50MzJfdCkpOwogfQogCiB2b2lkIHNl
cmlhbGl6ZVN0cmluZyhWZWN0b3I8dWludDhfdD4mIGFjdGlvbnMsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIC8vIEFwcGVuZCBTZWxlY3RvciBsZW5ndGggKDQgYnl0ZXMpLgotICAgIHVp
bnQzMl90IHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLSAgICBhY3Rpb25zLmdyb3co
YWN0aW9ucy5zaXplKCkgKyBzaXplb2YodWludDMyX3QpKTsKLSAgICAqcmVpbnRlcnByZXRfY2Fz
dDx1aW50MzJfdCo+KCZhY3Rpb25zW2FjdGlvbnMuc2l6ZSgpIC0gc2l6ZW9mKHVpbnQzMl90KV0p
ID0gc3RyaW5nTGVuZ3RoOwotICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSAhc3RyaW5nLmlzOEJp
dCgpOwotICAgIGFjdGlvbnMuYXBwZW5kKHdpZGVDaGFyYWN0ZXJzKTsKLSAgICAvLyBBcHBlbmQg
U2VsZWN0b3IuCi0gICAgaWYgKHdpZGVDaGFyYWN0ZXJzKSB7Ci0gICAgICAgIHVpbnQzMl90IHN0
YXJ0SW5kZXggPSBhY3Rpb25zLnNpemUoKTsKLSAgICAgICAgYWN0aW9ucy5ncm93KGFjdGlvbnMu
c2l6ZSgpICsgc2l6ZW9mKFVDaGFyKSAqIHN0cmluZ0xlbmd0aCk7Ci0gICAgICAgIGZvciAodWlu
dDMyX3QgaSA9IDA7IGkgPCBzdHJpbmdMZW5ndGg7ICsraSkKLSAgICAgICAgICAgICpyZWludGVy
cHJldF9jYXN0PFVDaGFyKj4oJmFjdGlvbnNbc3RhcnRJbmRleCArIGkgKiBzaXplb2YoVUNoYXIp
XSkgPSBzdHJpbmdbaV07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8IHN0cmluZ0xlbmd0aDsgKytpKQotICAgICAgICAgICAgYWN0aW9ucy5hcHBlbmQoc3Ry
aW5nW2ldKTsKLSAgICB9CisgICAgYXV0byB1dGY4ID0gc3RyaW5nLnV0ZjgoKTsKKyAgICB1aW50
MzJfdCBzZXJpYWxpemVkTGVuZ3RoID0gc2l6ZW9mKHVpbnQzMl90KSArIHV0ZjgubGVuZ3RoKCk7
CisgICAgYWN0aW9ucy5yZXNlcnZlQ2FwYWNpdHkoYWN0aW9ucy5zaXplKCkgKyBzZXJpYWxpemVk
TGVuZ3RoKTsKKyAgICBhY3Rpb25zLnVuY2hlY2tlZEFwcGVuZChTcGFuPGNvbnN0IHVpbnQ4X3Q+
IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJnNlcmlhbGl6ZWRMZW5ndGgpLCBz
aXplb2Yoc2VyaWFsaXplZExlbmd0aCkgfSk7CisgICAgYWN0aW9ucy51bmNoZWNrZWRBcHBlbmQo
U3Bhbjxjb25zdCB1aW50OF90PiB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHV0
ZjguZGF0YSgpKSwgdXRmOC5sZW5ndGgoKSB9KTsKIH0KIAogc2l6ZV90IHN0cmluZ1NlcmlhbGl6
ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKQogewotICAgIGNvbnN0ZXhwciBhdXRv
IHByZWZpeExlbmd0aCA9IHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoYm9vbCk7Ci0gICAgUkVM
RUFTRV9BU1NFUlQoc3Bhbi5zaXplKCkgPj0gcHJlZml4TGVuZ3RoKTsKLSAgICBhdXRvIHN0cmlu
Z0xlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkp
OwotICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSBzcGFuW3NpemVvZih1aW50MzJfdCldOwotICAg
IGlmICh3aWRlQ2hhcmFjdGVycykKLSAgICAgICAgcmV0dXJuIHByZWZpeExlbmd0aCArIHN0cmlu
Z0xlbmd0aCAqIHNpemVvZihVQ2hhcik7Ci0gICAgcmV0dXJuIHByZWZpeExlbmd0aCArIHN0cmlu
Z0xlbmd0aCAqIHNpemVvZihMQ2hhcik7CisgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvREZBQnl0ZWNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0RGQUJ5dGVjb2RlLmgKaW5kZXggM2MwZGZhOWE1NzE4ODc2ZTZmOTgyMjdhMWFlZjVjYTE0MTc0
NWFkZS4uM2MwNjQ0OGZiY2E5ZjVlOWYyNGJmOTc4YTJhOWQ1MTM2N2ViMmEyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZS5oCkBAIC03OCw3ICs3
OCw3IEBAIGVudW0gY2xhc3MgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbiA6IHVpbnQ4X3QgewogCiAv
LyBUaGUgbGFzdCBmb3VyIGJpdHMgY29udGFpbiB0aGUgaW5zdHJ1Y3Rpb24gdHlwZS4KIHN0YXRp
YyBjb25zdGV4cHIgdWludDhfdCBERkFCeXRlY29kZUluc3RydWN0aW9uTWFzayA9IDB4MEY7Ci1z
dGF0aWMgY29uc3RleHByIHVpbnQ4X3QgREZBQnl0ZWNvZGVKdW1wU2l6ZU1hc2sgPSAweEYwOwor
c3RhdGljIGNvbnN0ZXhwciB1aW50OF90IERGQUJ5dGVjb2RlSnVtcFNpemVNYXNrID0gMHgzMDsK
IHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBERkFCeXRlY29kZUZsYWdzU2l6ZU1hc2sgPSAweDMw
Owogc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IERGQUJ5dGVjb2RlQWN0aW9uU2l6ZU1hc2sgPSAw
eEMwOwogCkBAIC04NywyMyArODcsMjMgQEAgdXNpbmcgREZBSGVhZGVyID0gdWludDMyX3Q7CiAK
IC8vIERGQUJ5dGVjb2RlRmxhZ3NTaXplIGFuZCBERkFCeXRlY29kZUFjdGlvblNpemUgYXJlIHN0
b3JlZCBpbiB0aGUgdG9wIGZvdXIgYml0cyBvZiB0aGUgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbnMg
dGhhdCBoYXZlIGZsYWdzIGFuZCBhY3Rpb25zLgogZW51bSBjbGFzcyBERkFCeXRlY29kZUZsYWdz
U2l6ZSA6IHVpbnQ4X3QgewotICAgIFVJbnQ4ID0gMHgxMCwKLSAgICBVSW50MTYgPSAweDAwLCAv
LyBOZWVkcyB0byBiZSB6ZXJvIHRvIGJlIGJpbmFyeSBjb21wYXRpYmxlIHdpdGggYnl0ZWNvZGUg
Y29tcGlsZWQgd2l0aCBmaXhlZC1zaXplIGZsYWdzLgorICAgIFVJbnQ4ID0gMHgwMCwKKyAgICBV
SW50MTYgPSAweDEwLAogICAgIFVJbnQyNCA9IDB4MjAsCiB9OwogZW51bSBjbGFzcyBERkFCeXRl
Y29kZUFjdGlvblNpemUgOiB1aW50OF90IHsKLSAgICBVSW50OCA9IDB4NDAsCi0gICAgVUludDE2
ID0gMHg4MCwKLSAgICBVSW50MjQgPSAweEMwLAotICAgIFVJbnQzMiA9IDB4MDAsIC8vIE5lZWRz
IHRvIGJlIHplcm8gdG8gYmUgYmluYXJ5IGNvbXBhdGlibGUgd2l0aCBieXRlY29kZSBjb21waWxl
ZCB3aXRoIGZpeGVkLXNpemUgYWN0aW9ucy4KKyAgICBVSW50OCA9IDB4MDAsCisgICAgVUludDE2
ID0gMHg0MCwKKyAgICBVSW50MjQgPSAweDgwLAorICAgIFVJbnQzMiA9IDB4QzAsCiB9OwogCiAv
LyBBIERGQUJ5dGVjb2RlSnVtcFNpemUgaXMgc3RvcmVkIGluIHRoZSB0b3AgZm91ciBiaXRzIG9m
IHRoZSBERkFCeXRlY29kZUluc3RydWN0aW9ucyB0aGF0IGhhdmUgYSBqdW1wLgogZW51bSBjbGFz
cyBERkFCeXRlY29kZUp1bXBTaXplIDogdWludDhfdCB7Ci0gICAgSW50OCA9IDB4MTAsCi0gICAg
SW50MTYgPSAweDIwLAotICAgIEludDI0ID0gMHgzMCwKLSAgICBJbnQzMiA9IDB4NDAsCisgICAg
SW50OCA9IDB4MDAsCisgICAgSW50MTYgPSAweDEwLAorICAgIEludDI0ID0gMHgyMCwKKyAgICBJ
bnQzMiA9IDB4MzAsCiB9Owogc3RhdGljIGNvbnN0ZXhwciBpbnQzMl90IFVJbnQyNE1heCA9ICgx
IDw8IDI0KSAtIDE7CiBzdGF0aWMgY29uc3RleHByIGludDMyX3QgSW50MjRNYXggPSAoMSA8PCAy
MykgLSAxOwpAQCAtMTExLDE3ICsxMTEsNiBAQCBzdGF0aWMgY29uc3RleHByIGludDMyX3QgSW50
MjRNaW4gPSAtKDEgPDwgMjMpOwogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgSW50MjRTaXplID0g
MzsKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IFVJbnQyNFNpemUgPSAzOwogCi1zdGF0aWMgaW5s
aW5lIERGQUJ5dGVjb2RlSnVtcFNpemUgc21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKGludDMyX3Qg
bG9uZ2VzdFBvc3NpYmxlSnVtcCkKLXsKLSAgICBpZiAobG9uZ2VzdFBvc3NpYmxlSnVtcCA8PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDhfdD46Om1heCgpICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAg
Pj0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ4X3Q+OjptaW4oKSkKLSAgICAgICAgcmV0dXJuIERG
QUJ5dGVjb2RlSnVtcFNpemU6OkludDg7Ci0gICAgaWYgKGxvbmdlc3RQb3NzaWJsZUp1bXAgPD0g
c3RkOjpudW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWF4KCkgJiYgbG9uZ2VzdFBvc3NpYmxlSnVt
cCA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDE2X3Q+OjptaW4oKSkKLSAgICAgICAgcmV0dXJu
IERGQUJ5dGVjb2RlSnVtcFNpemU6OkludDE2OwotICAgIGlmIChsb25nZXN0UG9zc2libGVKdW1w
IDw9IEludDI0TWF4ICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gSW50MjRNaW4pCi0gICAgICAg
IHJldHVybiBERkFCeXRlY29kZUp1bXBTaXplOjpJbnQyNDsKLSAgICByZXR1cm4gREZBQnl0ZWNv
ZGVKdW1wU2l6ZTo6SW50MzI7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zCiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVDb21waWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBp
bGVyLmNwcAppbmRleCBhM2JjZTgwNDBhNGVjOTUwNWI0YTRmODBlZTI3NDg5ZTMxZjIwMWRhLi5m
NjYzZWZmNWMwZTIwYmU2OWQ0MjA4ODJlZjFiNzExODg0MTk1NjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVyLmNw
cApAQCAtMTUxLDcgKzE1MSwxOCBAQCBpbnQzMl90IERGQUJ5dGVjb2RlQ29tcGlsZXI6Omxvbmdl
c3RQb3NzaWJsZUp1bXAodWludDMyX3QgaW5zdHJ1Y3Rpb25Mb2NhdGlvbiwgdQogICAgIEFTU0VS
VChtX25vZGVTdGFydE9mZnNldHNbZGVzdGluYXRpb25Ob2RlSW5kZXhdIDw9IGluc3RydWN0aW9u
TG9jYXRpb24pOwogICAgIHJldHVybiBtX25vZGVTdGFydE9mZnNldHNbZGVzdGluYXRpb25Ob2Rl
SW5kZXhdIC0gaW5zdHJ1Y3Rpb25Mb2NhdGlvbjsKIH0KLSAgICAKKworc3RhdGljIERGQUJ5dGVj
b2RlSnVtcFNpemUgc21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKGludDMyX3QgbG9uZ2VzdFBvc3Np
YmxlSnVtcCkKK3sKKyAgICBpZiAobG9uZ2VzdFBvc3NpYmxlSnVtcCA8PSBzdGQ6Om51bWVyaWNf
bGltaXRzPGludDhfdD46Om1heCgpICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gc3RkOjpudW1l
cmljX2xpbWl0czxpbnQ4X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIERGQUJ5dGVjb2RlSnVt
cFNpemU6OkludDg7CisgICAgaWYgKGxvbmdlc3RQb3NzaWJsZUp1bXAgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQxNl90Pjo6bWF4KCkgJiYgbG9uZ2VzdFBvc3NpYmxlSnVtcCA+PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDE2X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIERGQUJ5dGVjb2Rl
SnVtcFNpemU6OkludDE2OworICAgIGlmIChsb25nZXN0UG9zc2libGVKdW1wIDw9IEludDI0TWF4
ICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gSW50MjRNaW4pCisgICAgICAgIHJldHVybiBERkFC
eXRlY29kZUp1bXBTaXplOjpJbnQyNDsKKyAgICByZXR1cm4gREZBQnl0ZWNvZGVKdW1wU2l6ZTo6
SW50MzI7Cit9CisKIHZvaWQgREZBQnl0ZWNvZGVDb21waWxlcjo6ZW1pdEp1bXAodWludDMyX3Qg
c291cmNlTm9kZUluZGV4LCB1aW50MzJfdCBkZXN0aW5hdGlvbk5vZGVJbmRleCkKIHsKICAgICB1
aW50MzJfdCBpbnN0cnVjdGlvbkxvY2F0aW9uID0gbV9ieXRlY29kZS5zaXplKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAKaW5k
ZXggMTlkZWNmNjc2OTQ5NGVmMzIxZjRjN2Y5YThkZDNhYTcxODY2YTZhMC4uNWEyYTUyNTkzYjUw
ZmJiYmJlNDUyMDA3NGViMGY5MzJjMjY1NGNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmNwcApAQCAtNDYsNyArNDYsNyBAQCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6fldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0KCkK
IAogYm9vbCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y29uZGl0aW9uc0FwcGx5T25seVRv
RG9tYWluKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDMyX3QqPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4obV9kYXRhLmRhdGEtPmRhdGEoKSkg
KyBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsKKyAgICByZXR1cm4g
bV9kYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKIH0KIAogU3Bhbjxjb25zdCB1aW50
OF90PiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGUoKSBjb25zdApAQCAtNjQsNiArNjQsMTEgQEAgU3Bhbjxjb25zdCB1aW50OF90PiBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dG9wVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gc3BhbldpdGhPZmZzZXRBbmRMZW5ndGgobV9kYXRhLnRvcFVSTEZpbHRlcnNC
eXRlY29kZU9mZnNldCwgbV9kYXRhLnRvcFVSTEZpbHRlcnNCeXRlY29kZVNpemUpOwogfQogCitT
cGFuPGNvbnN0IHVpbnQ4X3Q+IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmcmFtZVVSTEZp
bHRlcnNCeXRlY29kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNwYW5XaXRoT2Zmc2V0QW5kTGVu
Z3RoKG1fZGF0YS5mcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgbV9kYXRhLmZyYW1lVVJM
RmlsdGVyc0J5dGVjb2RlU2l6ZSk7Cit9CisKIFNwYW48Y29uc3QgdWludDhfdD4gV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q6OnNlcmlhbGl6ZWRBY3Rpb25zKCkgY29uc3QKIHsKICAgICByZXR1
cm4gc3BhbldpdGhPZmZzZXRBbmRMZW5ndGgobV9kYXRhLmFjdGlvbnNPZmZzZXQsIG1fZGF0YS5h
Y3Rpb25zU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3QuaAppbmRleCA5YmI5ZmZlZTMzODBlZmQ2ZTMwZTAyZTg1M2U0NTAyNmVhZWQ0
YzE1Li5jMzQzNGFlZDU4MmI3Y2NkN2ZkZTZkMTQyZGJhMzk1NDE1YzAxZjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRo
b3V0Q29uZGl0aW9uc0J5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAgICAgU3Bhbjxjb25zdCB1aW50
OF90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsOwogICAgIFNw
YW48Y29uc3QgdWludDhfdD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgZmluYWw7Cisg
ICAgU3Bhbjxjb25zdCB1aW50OF90PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0IGZp
bmFsOwogICAgIFNwYW48Y29uc3QgdWludDhfdD4gc2VyaWFsaXplZEFjdGlvbnMoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0IGZpbmFs
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3REYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0RGF0YS5jcHAKaW5kZXggODNmYTAyZmZhYjE1NDI5YjhjNWM4ZTM1ODFkMGNi
ODJiNmJiZTcxMC4uZmRlODNjMmE2ZTU5MTM3ZWJkZGViM2JkZTk5ZjczNDJmNjY3Zjg1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiAg
ICAgZW5jb2RlciA8PCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwg
ZGF0YVNpemUgfTsKIAotICAgIGVuY29kZXIgPDwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
T2Zmc2V0OworICAgIGVuY29kZXIgPDwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwogICAg
IGVuY29kZXIgPDwgYWN0aW9uc09mZnNldDsKICAgICBlbmNvZGVyIDw8IGFjdGlvbnNTaXplOwog
ICAgIGVuY29kZXIgPDwgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CkBA
IC01OCw2ICs1OCw4IEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgdG9wVVJMRmlsdGVyc0J5
dGVjb2RlT2Zmc2V0OwogICAgIGVuY29kZXIgPDwgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsK
KyAgICBlbmNvZGVyIDw8IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OworICAgIGVuY29k
ZXIgPDwgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOwogfQogCiBzdGQ6Om9wdGlvbmFsPFdl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzQsNTUgKzc2LDY1IEBAIHN0
ZDo6b3B0aW9uYWw8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGE6OmRlCiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gY29uZGl0aW9uc0FwcGx5
T25seVRvRG9tYWluT2Zmc2V0OwotICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRv
RG9tYWluT2Zmc2V0OwotICAgIGlmICghY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0
KQorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwor
ICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAgIGlmICghY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
Ci0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gYWN0aW9uc09mZnNldDsKKyAgICBzdGQ6Om9w
dGlvbmFsPHNpemVfdD4gYWN0aW9uc09mZnNldDsKICAgICBkZWNvZGVyID4+IGFjdGlvbnNPZmZz
ZXQ7CiAgICAgaWYgKCFhY3Rpb25zT2Zmc2V0KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gYWN0aW9uc1NpemU7CisgICAgc3RkOjpv
cHRpb25hbDxzaXplX3Q+IGFjdGlvbnNTaXplOwogICAgIGRlY29kZXIgPj4gYWN0aW9uc1NpemU7
CiAgICAgaWYgKCFhY3Rpb25zU2l6ZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAot
ICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVj
b2RlT2Zmc2V0OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaWx0ZXJzV2l0aG91dENvbmRp
dGlvbnNCeXRlY29kZU9mZnNldDsKICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0
aW9uc0J5dGVjb2RlT2Zmc2V0OwogICAgIGlmICghZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVPZmZzZXQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkPiBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemU7Cisg
ICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZTsKICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6
ZTsKICAgICBpZiAoIWZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6
ZV90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZU9mZnNldDsKICAgICBkZWNvZGVyID4+
IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogICAgIGlmICghZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRl
Y29kZVNpemU7CisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9u
c0J5dGVjb2RlU2l6ZTsKICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVj
b2RlU2l6ZTsKICAgICBpZiAoIWZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+
IHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldDsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4g
dG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OwogICAgIGRlY29kZXIgPj4gdG9wVVJMRmlsdGVy
c0J5dGVjb2RlT2Zmc2V0OwogICAgIGlmICghdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4g
dG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKICAgICBkZWNvZGVyID4+IHRvcFVSTEZpbHRlcnNC
eXRlY29kZVNpemU7CiAgICAgaWYgKCF0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZyYW1l
VVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OworICAgIGRlY29kZXIgPj4gZnJhbWVVUkxGaWx0ZXJz
Qnl0ZWNvZGVPZmZzZXQ7CisgICAgaWYgKCFmcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90
PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7CisgICAgZGVjb2RlciA+PiBmcmFtZVVSTEZp
bHRlcnNCeXRlY29kZVNpemU7CisgICAgaWYgKCFmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICByZXR1cm4ge3sKICAgICAgICAg
V1RGTW92ZSgqaWRlbnRpZmllciksCiAgICAgICAgIGRhdGEucmVsZWFzZU5vbk51bGwoKSwKLSAg
ICAgICAgV1RGTW92ZSgqY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KSwKKyAgICAg
ICAgV1RGTW92ZSgqY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKSwKICAgICAgICAgV1RGTW92
ZSgqYWN0aW9uc09mZnNldCksCiAgICAgICAgIFdURk1vdmUoKmFjdGlvbnNTaXplKSwKICAgICAg
ICAgV1RGTW92ZSgqZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpLApAQCAt
MTMwLDcgKzE0Miw5IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhPiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmRlCiAgICAgICAgIFdURk1vdmUo
KmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0KSwKICAgICAgICAgV1RGTW92ZSgq
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplKSwKICAgICAgICAgV1RGTW92ZSgqdG9w
VVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KSwKLSAgICAgICAgV1RGTW92ZSgqdG9wVVJMRmlsdGVy
c0J5dGVjb2RlU2l6ZSkKKyAgICAgICAgV1RGTW92ZSgqdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6
ZSksCisgICAgICAgIFdURk1vdmUoKmZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KSwKKyAg
ICAgICAgV1RGTW92ZSgqZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgIH19OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YS5oCmluZGV4IGE0ODAzNWJmYWQ4NmNhNTgyOGUyMTRhMmU0YzNmY2U1Y2FmYzk2Y2Qu
LmQxNGMyMTBiMDQxOWQ4MDlkOTdmNzgwOTVlMGRiMzNiNjcyM2IyNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCkBA
IC00MSwxMCArNDEsMTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YSB7CiBwdWJsaWM6Ci0gICAgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhKFN0cmluZyYmIGlkZW50aWZpZXIsIFJlZjxTaGFyZWRNZW1vcnk+JiYgZGF0YSwg
dW5zaWduZWQgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0LCB1bnNpZ25lZCBhY3Rp
b25zT2Zmc2V0LCB1bnNpZ25lZCBhY3Rpb25zU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRD
b25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZz
ZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQg
dG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNv
ZGVTaXplKQorICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YShTdHJpbmcmJiBpZGVu
dGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIGRhdGEsIGJvb2wgY29uZGl0aW9uc0FwcGx5T25s
eVRvRG9tYWluLCBzaXplX3QgYWN0aW9uc09mZnNldCwgc2l6ZV90IGFjdGlvbnNTaXplLCBzaXpl
X3QgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHNpemVfdCBmaWx0ZXJz
V2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHNpemVfdCBmaWx0ZXJzV2l0aENvbmRpdGlv
bnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6
ZSwgc2l6ZV90IHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IHRvcFVSTEZpbHRl
cnNCeXRlY29kZVNpemUsIHNpemVfdCBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgc2l6
ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKICAgICAgICAgOiBpZGVudGlmaWVyKFdU
Rk1vdmUoaWRlbnRpZmllcikpCiAgICAgICAgICwgZGF0YShXVEZNb3ZlKGRhdGEpKQotICAgICAg
ICAsIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldChjb25kaXRpb25zQXBwbHlPbmx5
VG9Eb21haW5PZmZzZXQpCisgICAgICAgICwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKGNv
bmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbikKICAgICAgICAgLCBhY3Rpb25zT2Zmc2V0KGFjdGlv
bnNPZmZzZXQpCiAgICAgICAgICwgYWN0aW9uc1NpemUoYWN0aW9uc1NpemUpCiAgICAgICAgICwg
ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQoZmlsdGVyc1dpdGhvdXRDb25k
aXRpb25zQnl0ZWNvZGVPZmZzZXQpCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICAgICAg
LCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUoZmlsdGVyc1dpdGhDb25kaXRpb25z
Qnl0ZWNvZGVTaXplKQogICAgICAgICAsIHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCh0b3BV
UkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgICwgdG9wVVJMRmlsdGVyc0J5dGVjb2Rl
U2l6ZSh0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQorICAgICAgICAsIGZyYW1lVVJMRmlsdGVy
c0J5dGVjb2RlT2Zmc2V0KGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KQorICAgICAgICAs
IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZShmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemUp
CiAgICAgewogICAgIH0KIApAQCAtNjEsMTUgKzYzLDE3IEBAIHB1YmxpYzoKIAogICAgIFN0cmlu
ZyBpZGVudGlmaWVyOwogICAgIFJlZjxTaGFyZWRNZW1vcnk+IGRhdGE7Ci0gICAgdW5zaWduZWQg
Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0IHsgMCB9OwotICAgIHVuc2lnbmVkIGFj
dGlvbnNPZmZzZXQgeyAwIH07Ci0gICAgdW5zaWduZWQgYWN0aW9uc1NpemUgeyAwIH07Ci0gICAg
dW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQgeyAwIH07Ci0g
ICAgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplIHsgMCB9Owot
ICAgIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0IHsgMCB9Owot
ICAgIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSB7IDAgfTsKLSAg
ICB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQgeyAwIH07Ci0gICAgdW5zaWdu
ZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAgfTsKKyAgICBib29sIGNvbmRpdGlvbnNB
cHBseU9ubHlUb0RvbWFpbiB7IDAgfTsKKyAgICBzaXplX3QgYWN0aW9uc09mZnNldCB7IDAgfTsK
KyAgICBzaXplX3QgYWN0aW9uc1NpemUgeyAwIH07CisgICAgc2l6ZV90IGZpbHRlcnNXaXRob3V0
Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZVNpemUgeyAwIH07CisgICAgc2l6ZV90IGZpbHRlcnNXaXRoQ29u
ZGl0aW9uc0J5dGVjb2RlT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBmaWx0ZXJzV2l0aENvbmRp
dGlvbnNCeXRlY29kZVNpemUgeyAwIH07CisgICAgc2l6ZV90IHRvcFVSTEZpbHRlcnNCeXRlY29k
ZU9mZnNldCB7IDAgfTsKKyAgICBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAg
fTsKKyAgICBzaXplX3QgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQgeyAwIH07CisgICAg
c2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAgfTsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3Rv
cmUuY3BwCmluZGV4IDNjNzliNDE5MmYxOWFhMWMxYzBjNmM0MWUxMTdhNjdkM2RlZTkzYjcuLjM2
YTZmNGZiMDdmMGFiOWRkYzdhNDYxOGZlZDQyMmVjMzg5NzQwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcApA
QCAtOTYsOCArOTYsMTQgQEAgc3RhdGljIFdURjo6U3RyaW5nIGNvbnN0cnVjdGVkUGF0aChjb25z
dCBXVEY6OlN0cmluZyYgYmFzZSwgY29uc3QgV1RGOjpTdHJpbmcmIGkKIAogLy8gVGhlIHNpemUg
YW5kIG9mZnNldCBvZiB0aGUgZGVuc2VseSBwYWNrZWQgYnl0ZXMgaW4gdGhlIGZpbGUsIG5vdCBz
aXplb2YgYW5kIG9mZnNldG9mLCB3aGljaCB3b3VsZAogLy8gcmVwcmVzZW50IHRoZSBzaXplIGFu
ZCBvZmZzZXQgb2YgdGhlIHN0cnVjdHVyZSBpbiBtZW1vcnksIHBvc3NpYmx5IHdpdGggY29tcGls
ZXItYWRkZWQgcGFkZGluZy4KLWNvbnN0IHNpemVfdCBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVy
U2l6ZSA9IDIgKiBzaXplb2YodWludDMyX3QpICsgNSAqIHNpemVvZih1aW50NjRfdCk7Ci1jb25z
dCBzaXplX3QgQ29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0ID0gc2l6ZW9mKHVpbnQz
Ml90KSArIDUgKiBzaXplb2YodWludDY0X3QpOworY29uc3Qgc2l6ZV90IEN1cnJlbnRWZXJzaW9u
RmlsZUhlYWRlclNpemUgPSAyICogc2l6ZW9mKHVpbnQzMl90KSArIDcgKiBzaXplb2YodWludDY0
X3QpOworCitzdGF0aWMgc2l6ZV90IGhlYWRlclNpemUodWludDMyX3QgdmVyc2lvbikKK3sKKyAg
ICBpZiAodmVyc2lvbiA8IDEyKQorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih1aW50MzJfdCkg
KyA1ICogc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICByZXR1cm4gQ3VycmVudFZlcnNpb25GaWxlSGVh
ZGVyU2l6ZTsKK30KIAogc3RydWN0IENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIHsKICAgICB1aW50
MzJfdCB2ZXJzaW9uIHsgQ29udGVudFJ1bGVMaXN0U3RvcmU6OkN1cnJlbnRDb250ZW50UnVsZUxp
c3RGaWxlVmVyc2lvbiB9OwpAQCAtMTA3LDE1ICsxMTMsMTggQEAgc3RydWN0IENvbnRlbnRSdWxl
TGlzdE1ldGFEYXRhIHsKICAgICB1aW50NjRfdCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29k
ZVNpemUgeyAwIH07CiAgICAgdWludDY0X3QgY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXpl
IHsgMCB9OwogICAgIHVpbnQzMl90IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiB7IGZhbHNl
IH07CisgICAgdWludDY0X3QgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplIHsgMCB9OworICAg
IHVpbnQ2NF90IHVudXNlZCB7IDAgfTsgLy8gQWRkaXRpb25hbCBzcGFjZSBvbiBkaXNrIHJlc2Vy
dmVkIHNvIHdlIGNhbiBhZGQgc29tZXRoaW5nIHdpdGhvdXQgaW5jcmVtZW50aW5nIHRoZSB2ZXJz
aW9uIG51bWJlci4KICAgICAKICAgICBzaXplX3QgZmlsZVNpemUoKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIENvbnRlbnRSdWxlTGlzdEZpbGVIZWFkZXJTaXplCisgICAgICAgIHJldHVy
biBoZWFkZXJTaXplKHZlcnNpb24pCiAgICAgICAgICAgICArIHNvdXJjZVNpemUKICAgICAgICAg
ICAgICsgYWN0aW9uc1NpemUKICAgICAgICAgICAgICsgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVTaXplCiAgICAgICAgICAgICArIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZQotICAgICAgICAgICAgKyBjb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemU7CisgICAg
ICAgICAgICArIGNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZQorICAgICAgICAgICAgKyBm
cmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7CiAgICAgfQogfTsKIApAQCAtMTMwLDggKzEzOSwx
MCBAQCBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEgZW5jb2RlQ29udGVudFJ1bGVM
aXN0TWV0YURhdGEoY29uc3QgQ29udGVudFJ1bAogICAgIGVuY29kZXIgPDwgbWV0YURhdGEuZmls
dGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgbWV0YURhdGEu
Y29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgbWV0YURhdGEu
Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAgIGVuY29kZXIgPDwgbWV0YURhdGEuZnJh
bWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGVuY29kZXIgPDwgbWV0YURhdGEudW51c2Vk
OwogCi0gICAgQVNTRVJUKGVuY29kZXIuYnVmZmVyU2l6ZSgpID09IENvbnRlbnRSdWxlTGlzdEZp
bGVIZWFkZXJTaXplKTsKKyAgICBBU1NFUlQoZW5jb2Rlci5idWZmZXJTaXplKCkgPT0gQ3VycmVu
dFZlcnNpb25GaWxlSGVhZGVyU2l6ZSk7CiAgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya0NhY2hl
OjpEYXRhKGVuY29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsKIH0KIApAQCAt
MTQ1LDY2ICsxNTYsNzAgQEAgdGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3QgV2ViQ29yZTo6
U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBGdW5jdGlvbjxib29sKFMKICAgICBmdW5jdGlvbih7
IGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSB9KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LXN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250
ZW50UnVsZUxpc3RNZXRhRGF0YShjb25zdCBUJiBmaWxlRGF0YSkKK3N0YXRpYyBzdGQ6Om9wdGlv
bmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0
YShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEpCiB7Ci0gICAgYm9v
bCBzdWNjZXNzID0gZmFsc2U7CiAgICAgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7
Ci0gICAgZ2V0RGF0YShmaWxlRGF0YSwgWyZtZXRhRGF0YSwgJnN1Y2Nlc3MsICZmaWxlRGF0YV0o
U3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKSB7Ci0gICAgICAgIC8vIFRoZSBmaWxlIGRhdGEgc2hv
dWxkIGJlIG1hcHBlZCBpbnRvIG9uZSBjb250aW51b3VzIG1lbW9yeSBzZWdtZW50IHNvIHRoZSBz
aXplCi0gICAgICAgIC8vIHBhc3NlZCB0byB0aGUgYXBwbGllciBzaG91bGQgYWx3YXlzIGVxdWFs
IHRoZSBkYXRhIHNpemUuCi0gICAgICAgIGlmIChzcGFuLnNpemUoKSAhPSBmaWxlRGF0YS5zaXpl
KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byBzcGFuID0gZmlsZURhdGEu
c3BhbigpOwogCi0gICAgICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgZGVjb2RlcihzcGFu
KTsKLSAgICAgICAgCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZlcnNpb247Ci0g
ICAgICAgIGRlY29kZXIgPj4gdmVyc2lvbjsKLSAgICAgICAgaWYgKCF2ZXJzaW9uKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXRhRGF0YS52ZXJzaW9uID0gV1RGTW92ZSgq
dmVyc2lvbik7CisgICAgV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlciBkZWNvZGVyKHNwYW4pOwor
ICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZlcnNpb247CisgICAgZGVjb2RlciA+
PiB2ZXJzaW9uOworICAgIGlmICghdmVyc2lvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBtZXRhRGF0YS52ZXJzaW9uID0gV1RGTW92ZSgqdmVyc2lvbik7CiAKLSAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gc291cmNlU2l6ZTsKLSAgICAgICAgZGVjb2RlciA+PiBz
b3VyY2VTaXplOwotICAgICAgICBpZiAoIXNvdXJjZVNpemUpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLnNvdXJjZVNpemUgPSBXVEZNb3ZlKCpzb3VyY2VTaXpl
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBzb3VyY2VTaXplOworICAgIGRlY29kZXIg
Pj4gc291cmNlU2l6ZTsKKyAgICBpZiAoIXNvdXJjZVNpemUpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgbWV0YURhdGEuc291cmNlU2l6ZSA9IFdURk1vdmUoKnNvdXJjZVNpemUp
OwogCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGFjdGlvbnNTaXplOwotICAgICAg
ICBkZWNvZGVyID4+IGFjdGlvbnNTaXplOwotICAgICAgICBpZiAoIWFjdGlvbnNTaXplKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXRhRGF0YS5hY3Rpb25zU2l6ZSA9IFdU
Rk1vdmUoKmFjdGlvbnNTaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBhY3Rpb25z
U2l6ZTsKKyAgICBkZWNvZGVyID4+IGFjdGlvbnNTaXplOworICAgIGlmICghYWN0aW9uc1NpemUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgbWV0YURhdGEuYWN0aW9uc1NpemUg
PSBXVEZNb3ZlKCphY3Rpb25zU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVy
ID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFm
aWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7Cisg
ICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNv
ZGVTaXplOworICAgIGRlY29kZXIgPj4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVT
aXplOworICAgIGlmICghZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5
dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRo
Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFmaWx0ZXJzV2l0aENvbmRpdGlv
bnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFE
YXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNX
aXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIgPj4gZmlsdGVy
c1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOworICAgIGlmICghZmlsdGVyc1dpdGhDb25kaXRp
b25zQnl0ZWNvZGVTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFE
YXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNX
aXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVyID4+
IGNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFjb25kaXRpb25l
ZEZpbHRlcnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IG1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmNvbmRp
dGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
Y29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIgPj4gY29uZGl0aW9u
ZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGlmICghY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNv
ZGVTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLmNvbmRp
dGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmNvbmRpdGlvbmVkRmlsdGVyc0J5
dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gY29uZGl0aW9u
c0FwcGx5T25seVRvRG9tYWluOwotICAgICAgICBkZWNvZGVyID4+IGNvbmRpdGlvbnNBcHBseU9u
bHlUb0RvbWFpbjsKLSAgICAgICAgaWYgKCFjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4pCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLmNvbmRpdGlvbnNBcHBs
eU9ubHlUb0RvbWFpbiA9IFdURk1vdmUoKmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbik7Cisg
ICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwor
ICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAgIGlmICghY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIG1ldGFEYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IFdURk1vdmUoKmNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbik7CiAKLSAgICAgICAgc3VjY2VzcyA9IHRydWU7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9KTsKLSAgICBpZiAoIXN1Y2Nlc3MpCisgICAgaWYgKG1l
dGFEYXRhLnZlcnNpb24gPCAxMikKKyAgICAgICAgcmV0dXJuIG1ldGFEYXRhOworCisgICAgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGRl
Y29kZXIgPj4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGlmICghZnJhbWVVUkxG
aWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1l
dGFEYXRhLmZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZyYW1lVVJMRmls
dGVyc0J5dGVjb2RlU2l6ZSk7CisgICAgCisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdW51
c2VkOworICAgIGRlY29kZXIgPj4gdW51c2VkOworICAgIGlmICghdW51c2VkKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLnVudXNlZCA9IDA7CisKICAgICByZXR1
cm4gbWV0YURhdGE7CiB9CiAKQEAgLTM1OSw3ICszNzQsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8TWFw
cGVkRGF0YSwgc3RkOjplcnJvcl9jb2RlPiBjb21waWxlZFRvRmlsZShXVEY6OlN0cmluZyYmIGpz
b24sCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50UnVsZUxpc3RTdG9yZTo6
RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwogICAgIH0KICAgICAKLSAgICBjaGFyIGludmFsaWRIZWFk
ZXJbQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemVdOworICAgIGNoYXIgaW52YWxpZEhlYWRl
cltDdXJyZW50VmVyc2lvbkZpbGVIZWFkZXJTaXplXTsKICAgICBtZW1zZXQoaW52YWxpZEhlYWRl
ciwgMHhGRiwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKTsKICAgICAvLyBUaGlzIGhlYWRlciB3aWxs
IGJlIHJld3JpdHRlbiBpbiBDb21waWxhdGlvbkNsaWVudDo6ZmluYWxpemUuCiAgICAgaWYgKHdy
aXRlVG9GaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUsIGludmFsaWRIZWFkZXIsIHNpemVvZihpbnZh
bGlkSGVhZGVyKSkgPT0gLTEpIHsKQEAgLTQxMCwxMSArNDI1LDExIEBAIHN0YXRpYyBSZWY8QVBJ
OjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRl
bnRpZmllciwKICAgICAvLyBoYXMgYmVlbiBhbHJlYWR5IG1hcHBlZCwgdGhlcmVmb3JlIHRyeUNy
ZWF0ZVNoYXJlZE1lbW9yeSgpIGNhbm5vdCBmYWlsLgogICAgIFJFTEVBU0VfQVNTRVJUKHNoYXJl
ZE1lbW9yeSk7CiAKLSAgICBjb25zdCBzaXplX3QgaGVhZGVyQW5kU291cmNlU2l6ZSA9IENvbnRl
bnRSdWxlTGlzdEZpbGVIZWFkZXJTaXplICsgZGF0YS5tZXRhRGF0YS5zb3VyY2VTaXplOworICAg
IGNvbnN0IHNpemVfdCBoZWFkZXJBbmRTb3VyY2VTaXplID0gaGVhZGVyU2l6ZShkYXRhLm1ldGFE
YXRhLnZlcnNpb24pICsgZGF0YS5tZXRhRGF0YS5zb3VyY2VTaXplOwogICAgIGF1dG8gY29tcGls
ZWRDb250ZW50UnVsZUxpc3REYXRhID0gV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dERhdGEoCiAgICAgICAgIFdURjo6U3RyaW5nKGlkZW50aWZpZXIpLAogICAgICAgICBzaGFyZWRN
ZW1vcnkucmVsZWFzZU5vbk51bGwoKSwKLSAgICAgICAgQ29uZGl0aW9uc0FwcGx5T25seVRvRG9t
YWluT2Zmc2V0LAorICAgICAgICBkYXRhLm1ldGFEYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbiwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZSwKICAgICAgICAgZGF0YS5tZXRhRGF0
YS5hY3Rpb25zU2l6ZSwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZQpAQCAtNDI4LDcgKzQ0
MywxMyBAQCBzdGF0aWMgUmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0PiBjcmVhdGVFeHRlbnNpb24o
Y29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsCiAgICAgICAgICAgICArIGRhdGEubWV0YURh
dGEuYWN0aW9uc1NpemUKICAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5maWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZVNpemUKICAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5maWx0
ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCi0gICAgICAgIGRhdGEubWV0YURhdGEuY29u
ZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplCisgICAgICAgIGRhdGEubWV0YURhdGEuY29uZGl0
aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplLAorICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplCisg
ICAgICAgICAgICArIGRhdGEubWV0YURhdGEuYWN0aW9uc1NpemUKKyAgICAgICAgICAgICsgZGF0
YS5tZXRhRGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUKKyAgICAgICAg
ICAgICsgZGF0YS5tZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUKKyAg
ICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5jb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemUs
CisgICAgICAgIGRhdGEubWV0YURhdGEuZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplCiAgICAg
KTsKICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViS2l0OjpXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhKSk7CiAgICAgcmV0dXJuIEFQSTo6Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShj
b21waWxlZENvbnRlbnRSdWxlTGlzdCksIFdURk1vdmUoZGF0YS5kYXRhKSk7CkBAIC00NDIsMTAg
KzQ2MywxMyBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgZ2V0Q29udGVudFJ1bGVMaXN0U291cmNlRnJv
bU1hcHBlZEZpbGUoY29uc3QgTWFwcGVkRGF0YSYgbWFwcAogICAgIGNhc2UgOToKICAgICBjYXNl
IDEwOgogICAgIGNhc2UgMTE6CisgICAgY2FzZSAxMjoKICAgICAgICAgaWYgKCFtYXBwZWREYXRh
Lm1ldGFEYXRhLnNvdXJjZVNpemUpCiAgICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBi
b29sIGlzOEJpdCA9IG1hcHBlZERhdGEuZGF0YS5kYXRhKClbQ29udGVudFJ1bGVMaXN0RmlsZUhl
YWRlclNpemVdOwotICAgICAgICBzaXplX3Qgc3RhcnQgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVh
ZGVyU2l6ZSArIHNpemVvZihib29sKTsKKyAgICAgICAgICAgIAorICAgICAgICBhdXRvIGhlYWRl
clNpemVCeXRlcyA9IGhlYWRlclNpemUobWFwcGVkRGF0YS5tZXRhRGF0YS52ZXJzaW9uKTsKKyAg
ICAgICAgYm9vbCBpczhCaXQgPSBtYXBwZWREYXRhLmRhdGEuZGF0YSgpW2hlYWRlclNpemVCeXRl
c107CisgICAgICAgIHNpemVfdCBzdGFydCA9IGhlYWRlclNpemVCeXRlcyArIHNpemVvZihib29s
KTsKICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IG1hcHBlZERhdGEubWV0YURhdGEuc291cmNlU2l6
ZSAtIHNpemVvZihib29sKTsKICAgICAgICAgaWYgKGlzOEJpdCkKICAgICAgICAgICAgIHJldHVy
biBXVEY6OlN0cmluZyhtYXBwZWREYXRhLmRhdGEuZGF0YSgpICsgc3RhcnQsIGxlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RT
dG9yZS5oCmluZGV4IDg4MjA0ZjAwMTM2Nzg2MDQ1YTViMzJhNzNjNjc4YTBiYTg1MDY4MWMuLjdm
YzA1NDU3ZTY0Y2Y1ODliMGZiMGU3ZTAzNmY2OTBmYTJjMTdiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCkBAIC01
NCwxMCArNTQsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAg
ICAvLyBUaGlzIHNob3VsZCBiZSBpbmNyZW1lbnRlZCBldmVyeSB0aW1lIGEgZnVuY3Rpb25hbCBj
aGFuZ2UgaXMgbWFkZSB0byB0aGUgYnl0ZWNvZGUsIGZpbGUgZm9ybWF0LCBldGMuCiAgICAgLy8g
dG8gcHJldmVudCBjcmFzaGluZyB3aGlsZSBsb2FkaW5nIG9sZCBkYXRhLgotICAgIC8vIEFsc28g
dXBkYXRlIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpnZXRDb250ZW50UnVsZUxpc3RTb3VyY2UgdG8g
YmUgYWJsZSB0byBmaW5kIHRoZSBvcmlnaW5hbCBKU09OCisgICAgLy8gQWxzbyB1cGRhdGUgZ2V0
Q29udGVudFJ1bGVMaXN0U291cmNlRnJvbU1hcHBlZEZpbGUgdG8gYmUgYWJsZSB0byBmaW5kIHRo
ZSBvcmlnaW5hbCBKU09OCiAgICAgLy8gc291cmNlIGZyb20gb2xkIHZlcnNpb25zLgotICAgIC8v
IFVwZGF0ZSBnZXRDb250ZW50UnVsZUxpc3RTb3VyY2VGcm9tTWFwcGVkRmlsZSB3aXRoIHRoaXMu
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVMaXN0Rmls
ZVZlcnNpb24gPSAxMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEN1cnJlbnRDb250
ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9IDEyOwogCiAgICAgc3RhdGljIENvbnRlbnRSdWxlTGlz
dFN0b3JlJiBkZWZhdWx0U3RvcmUoKTsKICAgICBzdGF0aWMgUmVmPENvbnRlbnRSdWxlTGlzdFN0
b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwZjU4NTZkMGJk
ZmZmN2FmNDVmODA3ZTAzZGM0MGFlM2U4ZmNhNTEuLjQxMTU1MDg2OGM5N2YyODA1NWFhN2MyYzc5
MDk4OGNlYzg2ZWIwY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMi0wMiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCByb29tIGZvciBtb3JlIGJ5
dGVjb2RlIGluIFdLQ29udGVudFJ1bGVMaXN0IGZpbGUgZm9ybWF0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODAKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSGF0Y2hlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisKIDIwMjEtMTItMDEgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgU3BhbiBpbnN0ZWFkIG9m
IHBvaW50ZXIvbGVuZ3RoIGluIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAK
aW5kZXggY2QxYjA4OTk1N2ZmMWViMjg1ZjVkZjVkOWU3OGEwN2U2ZTAzNzE4Yi4uYzgzZTg3ODIw
MzYxMzAyZGVmYWE1ZjRlMTNiM2VlOTBmNzMwZjgyNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC02Niw2
ICs2Niw3IEBAIHN0cnVjdCBDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhIHsKICAgICBWZWN0
b3I8Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlPiBmaWx0ZXJzV2l0aG91dENvbmRpdGlv
bnM7CiAgICAgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29kZT4gZmlsdGVyc1dp
dGhDb25kaXRpb25zOwogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+
IHRvcFVSTEZpbHRlcnM7CisgICAgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29k
ZT4gZnJhbWVVUkxGaWx0ZXJzOwogICAgIGJvb2wgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
IHsgZmFsc2UgfTsKIH07CiAKQEAgLTE0Nyw2ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIFNwYW48
Y29uc3QgdWludDhfdD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB7IG1fZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnMuZGF0YSgpLCBt
X2RhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zLnNpemUoKSB9OyB9CiAgICAgU3Bhbjxjb25z
dCB1aW50OF90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHsgbV9kYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9ucy5kYXRhKCksIG1fZGF0YS5maWx0
ZXJzV2l0aENvbmRpdGlvbnMuc2l6ZSgpIH07IH0KICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHRv
cFVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgbV9kYXRhLnRvcFVS
TEZpbHRlcnMuZGF0YSgpLCBtX2RhdGEudG9wVVJMRmlsdGVycy5zaXplKCkgfTsgfQorICAgIFNw
YW48Y29uc3QgdWludDhfdD4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB7IG1fZGF0YS5mcmFtZVVSTEZpbHRlcnMuZGF0YSgpLCBtX2RhdGEuZnJhbWVVUkxG
aWx0ZXJzLnNpemUoKSB9OyB9CiAgICAgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4o
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
OyB9CiAKICAgICBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbihDb21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhJiYgZGF0YSkKQEAgLTk2Niw3ICs5NjgsNyBAQCBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIFN0cmluZ0NvbWJpbmluZykKICAgICBBU1NFUlRfRVEoc2VxdWVuY2VJ
bnN0YW5jZXMoZGF0YS5hY3Rpb25zLCAiQUFBIiksIDIpOwogICAgIEFTU0VSVF9FUShzZXF1ZW5j
ZUluc3RhbmNlcyhkYXRhLmFjdGlvbnMsICJHR0ciKSwgMSk7CiAKLSAgICBBU1NFUlRfRVEoZGF0
YS5hY3Rpb25zLnNpemUoKSwgNzh1KTsKKyAgICBBU1NFUlRfRVEoZGF0YS5hY3Rpb25zLnNpemUo
KSwgNzJ1KTsKICAgICBBU1NFUlRfRVEoZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnMuc2l6
ZSgpLCAyODh1KTsKICAgICBBU1NFUlRfRVEoZGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnMuc2l6
ZSgpLCA1dSk7CiAgICAgQVNTRVJUX0VRKGRhdGEudG9wVVJMRmlsdGVycy5zaXplKCksIDV1KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445807</attachid>
            <date>2021-12-02 21:51:33 -0800</date>
            <delta_ts>2021-12-03 08:55:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233780-20211202215132.patch</filename>
            <type>text/plain</type>
            <size>35977</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZjZmM1ZWFjNDkzNTA4
YTBhNzA1MTU4NWNhMGI0NmViMmYxY2RlYS4uOTQ5MGFjZjUzOWYwNDg0NmIyOWY1OGNiMmZhYzg2
YmQ4NTZkYTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEyLTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHJv
b20gZm9yIG1vcmUgYnl0ZWNvZGUgaW4gV0tDb250ZW50UnVsZUxpc3QgZmlsZSBmb3JtYXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzc4MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIYXRjaGVyLgorCisgICAgICAgIEZvciByZGFyOi8vNzIy
MDMzNTIgd2Ugd2lsbCBuZWVkIG1vcmUgYnl0ZWNvZGUuICBUaGlzIGFkZHMgcm9vbSBmb3IgaXQg
d2l0aG91dCBwdXR0aW5nIGFueXRoaW5nIHRoZXJlIHlldC4KKyAgICAgICAgQXMgbG9uZyBhcyB3
ZSBhcmUgdXBkYXRpbmcgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBmb3JjaW5nIGEgcmVjb21waWxl
LCBJJ20gbWFraW5nIHRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbgorICAgICAgICBtb3JlIGxpa2Ug
dGhlIG90aGVyIGFjdGlvbiBzZXJpYWxpemF0aW9ucyB0byBiZSBhYmxlIHRvIHNpbXBsaWZ5IHRo
ZSBpbnRlcnByZXRlciBsYXRlci4gIEknbSBhbHNvIHNoaWZ0aW5nCisgICAgICAgIGFyb3VuZCBh
IGZldyBiaXRzIGluIHRoZSBieXRlY29kZSB0byBiZSBtb3JlIG9yZ2FuaXplZCBhbmQgcmVhc29u
YWJsZS4KKworICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHJp
bmdTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpkZXNlcmlhbGl6ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6c2VyaWFsaXplU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpzdHJpbmdTZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9E
RkFCeXRlY29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnNtYWxs
ZXN0UG9zc2libGVKdW1wU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvREZBQnl0ZWNvZGVDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6c21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKToKKwogMjAyMS0xMi0wMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBTcGFu
IGluc3RlYWQgb2YgcG9pbnRlci9sZW5ndGggaW4gQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDVmNDZlZjZjNTdiNzc4ZTkzYjBjZThiMmVkYWZmMzBmMjc0ZTdmOTYuLmUwMDU3
NzJhYTEwYzIzYmMxODhmMWIzNzFmMTRiMWI5ZGFkMTlmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMjEtMTItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBBZGQgcm9vbSBmb3IgbW9yZSBieXRlY29kZSBpbiBXS0NvbnRlbnRS
dWxlTGlzdCBmaWxlIGZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZnJhbWVVUkxGaWx0ZXJzQnl0
ZWNvZGUgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVM
aXN0TWV0YURhdGE6OmZpbGVTaXplIGNvbnN0KToKKyAgICAgICAgKEFQSTo6ZW5jb2RlQ29udGVu
dFJ1bGVMaXN0TWV0YURhdGEpOgorICAgICAgICAoQVBJOjpkZWNvZGVDb250ZW50UnVsZUxpc3RN
ZXRhRGF0YSk6CisgICAgICAgIChBUEk6OmNvbXBpbGVkVG9GaWxlKToKKyAgICAgICAgKEFQSTo6
Y3JlYXRlRXh0ZW5zaW9uKToKKyAgICAgICAgKEFQSTo6Z2V0Q29udGVudFJ1bGVMaXN0U291cmNl
RnJvbU1hcHBlZEZpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVM
aXN0U3RvcmUuaDoKKwogMjAyMS0xMi0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBTcGFuIGluc3RlYWQgb2YgcG9pbnRlci9sZW5n
dGggaW4gQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCmluZGV4
IDhlMzcwYzJmODE2YTJiYmJjNTljODRmODVhODNlMTA1ZGQzZTFhMDAuLjQ0MjQ2ZjZhZDhiMzY1
Y2UxZjViNWQzMmIyNjRkMWJhM2Y4NGNhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCkBAIC00
MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNwYW48Y29uc3QgdWludDhfdD4gZmls
dGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBT
cGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25zdCB1aW50OF90PiB0b3BVUkxGaWx0ZXJzQnl0ZWNv
ZGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZyYW1lVVJM
RmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25zdCB1aW50
OF90PiBzZXJpYWxpemVkQWN0aW9ucygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHJpbmdTZXJp
YWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25TdHJpbmdTZXJpYWxpemF0aW9uLmNwcAppbmRleCA2YzdkYWU2NGM5MjNlNjUxMzJh
OWYxZjhlNzUxNGMyNjNmNTBhODAzLi44OGNhZmU1OGFkNTc3MmFhZjQzMzJiZTA2YTFkNjEwZTNj
Nzc2YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uU3RyaW5nU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0cmluZ1NlcmlhbGl6YXRpb24uY3Bw
CkBAIC0zMiw1MSArMzIsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
IHsKIAogU3RyaW5nIGRlc2VyaWFsaXplU3RyaW5nKFNwYW48Y29uc3QgdWludDhfdD4gc3BhbikK
IHsKLSAgICBjb25zdCBhdXRvKiBhY3Rpb25zID0gc3Bhbi5kYXRhKCk7Ci0gICAgY29uc3QgYXV0
byBhY3Rpb25zTGVuZ3RoID0gc3Bhbi5zaXplKCk7Ci0gICAgYXV0byBwcmVmaXhMZW5ndGggPSBz
aXplb2YodWludDMyX3QpICsgc2l6ZW9mKGJvb2wpOwotICAgIGF1dG8gc3RyaW5nU3RhcnRJbmRl
eCA9IHByZWZpeExlbmd0aDsKLSAgICBSRUxFQVNFX0FTU0VSVChhY3Rpb25zTGVuZ3RoID49IHN0
cmluZ1N0YXJ0SW5kZXgpOwotICAgIHVpbnQzMl90IHN0cmluZ0xlbmd0aCA9ICpyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oYWN0aW9ucyk7Ci0gICAgYm9vbCB3aWRlQ2hhcmFjdGVy
cyA9IGFjdGlvbnNbc2l6ZW9mKHVpbnQzMl90KV07Ci0KLSAgICBpZiAod2lkZUNoYXJhY3RlcnMp
IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWN0aW9uc0xlbmd0aCA+PSBzdHJpbmdTdGFydElu
ZGV4ICsgc3RyaW5nTGVuZ3RoICogc2l6ZW9mKFVDaGFyKSk7Ci0gICAgICAgIHJldHVybiBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KCZhY3Rpb25zW3N0cmluZ1N0YXJ0SW5k
ZXhdKSwgc3RyaW5nTGVuZ3RoKTsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlQoYWN0aW9uc0xl
bmd0aCA+PSBzdHJpbmdTdGFydEluZGV4ICsgc3RyaW5nTGVuZ3RoICogc2l6ZW9mKExDaGFyKSk7
Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oJmFjdGlv
bnNbc3RyaW5nU3RhcnRJbmRleF0pLCBzdHJpbmdMZW5ndGgpOworICAgIGF1dG8gc2VyaWFsaXpl
ZExlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHNwYW4uZGF0YSgpICsgc2l6ZW9mKHVpbnQz
Ml90KSwgc2VyaWFsaXplZExlbmd0aCAtIHNpemVvZih1aW50MzJfdCkpOwogfQogCiB2b2lkIHNl
cmlhbGl6ZVN0cmluZyhWZWN0b3I8dWludDhfdD4mIGFjdGlvbnMsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIC8vIEFwcGVuZCBTZWxlY3RvciBsZW5ndGggKDQgYnl0ZXMpLgotICAgIHVp
bnQzMl90IHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLSAgICBhY3Rpb25zLmdyb3co
YWN0aW9ucy5zaXplKCkgKyBzaXplb2YodWludDMyX3QpKTsKLSAgICAqcmVpbnRlcnByZXRfY2Fz
dDx1aW50MzJfdCo+KCZhY3Rpb25zW2FjdGlvbnMuc2l6ZSgpIC0gc2l6ZW9mKHVpbnQzMl90KV0p
ID0gc3RyaW5nTGVuZ3RoOwotICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSAhc3RyaW5nLmlzOEJp
dCgpOwotICAgIGFjdGlvbnMuYXBwZW5kKHdpZGVDaGFyYWN0ZXJzKTsKLSAgICAvLyBBcHBlbmQg
U2VsZWN0b3IuCi0gICAgaWYgKHdpZGVDaGFyYWN0ZXJzKSB7Ci0gICAgICAgIHVpbnQzMl90IHN0
YXJ0SW5kZXggPSBhY3Rpb25zLnNpemUoKTsKLSAgICAgICAgYWN0aW9ucy5ncm93KGFjdGlvbnMu
c2l6ZSgpICsgc2l6ZW9mKFVDaGFyKSAqIHN0cmluZ0xlbmd0aCk7Ci0gICAgICAgIGZvciAodWlu
dDMyX3QgaSA9IDA7IGkgPCBzdHJpbmdMZW5ndGg7ICsraSkKLSAgICAgICAgICAgICpyZWludGVy
cHJldF9jYXN0PFVDaGFyKj4oJmFjdGlvbnNbc3RhcnRJbmRleCArIGkgKiBzaXplb2YoVUNoYXIp
XSkgPSBzdHJpbmdbaV07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8IHN0cmluZ0xlbmd0aDsgKytpKQotICAgICAgICAgICAgYWN0aW9ucy5hcHBlbmQoc3Ry
aW5nW2ldKTsKLSAgICB9CisgICAgYXV0byB1dGY4ID0gc3RyaW5nLnV0ZjgoKTsKKyAgICB1aW50
MzJfdCBzZXJpYWxpemVkTGVuZ3RoID0gc2l6ZW9mKHVpbnQzMl90KSArIHV0ZjgubGVuZ3RoKCk7
CisgICAgYWN0aW9ucy5yZXNlcnZlQ2FwYWNpdHkoYWN0aW9ucy5zaXplKCkgKyBzZXJpYWxpemVk
TGVuZ3RoKTsKKyAgICBhY3Rpb25zLnVuY2hlY2tlZEFwcGVuZChTcGFuPGNvbnN0IHVpbnQ4X3Q+
IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJnNlcmlhbGl6ZWRMZW5ndGgpLCBz
aXplb2Yoc2VyaWFsaXplZExlbmd0aCkgfSk7CisgICAgYWN0aW9ucy51bmNoZWNrZWRBcHBlbmQo
U3Bhbjxjb25zdCB1aW50OF90PiB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHV0
ZjguZGF0YSgpKSwgdXRmOC5sZW5ndGgoKSB9KTsKIH0KIAogc2l6ZV90IHN0cmluZ1NlcmlhbGl6
ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKQogewotICAgIGNvbnN0ZXhwciBhdXRv
IHByZWZpeExlbmd0aCA9IHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoYm9vbCk7Ci0gICAgUkVM
RUFTRV9BU1NFUlQoc3Bhbi5zaXplKCkgPj0gcHJlZml4TGVuZ3RoKTsKLSAgICBhdXRvIHN0cmlu
Z0xlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkp
OwotICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSBzcGFuW3NpemVvZih1aW50MzJfdCldOwotICAg
IGlmICh3aWRlQ2hhcmFjdGVycykKLSAgICAgICAgcmV0dXJuIHByZWZpeExlbmd0aCArIHN0cmlu
Z0xlbmd0aCAqIHNpemVvZihVQ2hhcik7Ci0gICAgcmV0dXJuIHByZWZpeExlbmd0aCArIHN0cmlu
Z0xlbmd0aCAqIHNpemVvZihMQ2hhcik7CisgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQzMl90Kj4oc3Bhbi5kYXRhKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvREZBQnl0ZWNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0RGQUJ5dGVjb2RlLmgKaW5kZXggM2MwZGZhOWE1NzE4ODc2ZTZmOTgyMjdhMWFlZjVjYTE0MTc0
NWFkZS4uM2MwNjQ0OGZiY2E5ZjVlOWYyNGJmOTc4YTJhOWQ1MTM2N2ViMmEyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZS5oCkBAIC03OCw3ICs3
OCw3IEBAIGVudW0gY2xhc3MgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbiA6IHVpbnQ4X3QgewogCiAv
LyBUaGUgbGFzdCBmb3VyIGJpdHMgY29udGFpbiB0aGUgaW5zdHJ1Y3Rpb24gdHlwZS4KIHN0YXRp
YyBjb25zdGV4cHIgdWludDhfdCBERkFCeXRlY29kZUluc3RydWN0aW9uTWFzayA9IDB4MEY7Ci1z
dGF0aWMgY29uc3RleHByIHVpbnQ4X3QgREZBQnl0ZWNvZGVKdW1wU2l6ZU1hc2sgPSAweEYwOwor
c3RhdGljIGNvbnN0ZXhwciB1aW50OF90IERGQUJ5dGVjb2RlSnVtcFNpemVNYXNrID0gMHgzMDsK
IHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBERkFCeXRlY29kZUZsYWdzU2l6ZU1hc2sgPSAweDMw
Owogc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IERGQUJ5dGVjb2RlQWN0aW9uU2l6ZU1hc2sgPSAw
eEMwOwogCkBAIC04NywyMyArODcsMjMgQEAgdXNpbmcgREZBSGVhZGVyID0gdWludDMyX3Q7CiAK
IC8vIERGQUJ5dGVjb2RlRmxhZ3NTaXplIGFuZCBERkFCeXRlY29kZUFjdGlvblNpemUgYXJlIHN0
b3JlZCBpbiB0aGUgdG9wIGZvdXIgYml0cyBvZiB0aGUgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbnMg
dGhhdCBoYXZlIGZsYWdzIGFuZCBhY3Rpb25zLgogZW51bSBjbGFzcyBERkFCeXRlY29kZUZsYWdz
U2l6ZSA6IHVpbnQ4X3QgewotICAgIFVJbnQ4ID0gMHgxMCwKLSAgICBVSW50MTYgPSAweDAwLCAv
LyBOZWVkcyB0byBiZSB6ZXJvIHRvIGJlIGJpbmFyeSBjb21wYXRpYmxlIHdpdGggYnl0ZWNvZGUg
Y29tcGlsZWQgd2l0aCBmaXhlZC1zaXplIGZsYWdzLgorICAgIFVJbnQ4ID0gMHgwMCwKKyAgICBV
SW50MTYgPSAweDEwLAogICAgIFVJbnQyNCA9IDB4MjAsCiB9OwogZW51bSBjbGFzcyBERkFCeXRl
Y29kZUFjdGlvblNpemUgOiB1aW50OF90IHsKLSAgICBVSW50OCA9IDB4NDAsCi0gICAgVUludDE2
ID0gMHg4MCwKLSAgICBVSW50MjQgPSAweEMwLAotICAgIFVJbnQzMiA9IDB4MDAsIC8vIE5lZWRz
IHRvIGJlIHplcm8gdG8gYmUgYmluYXJ5IGNvbXBhdGlibGUgd2l0aCBieXRlY29kZSBjb21waWxl
ZCB3aXRoIGZpeGVkLXNpemUgYWN0aW9ucy4KKyAgICBVSW50OCA9IDB4MDAsCisgICAgVUludDE2
ID0gMHg0MCwKKyAgICBVSW50MjQgPSAweDgwLAorICAgIFVJbnQzMiA9IDB4QzAsCiB9OwogCiAv
LyBBIERGQUJ5dGVjb2RlSnVtcFNpemUgaXMgc3RvcmVkIGluIHRoZSB0b3AgZm91ciBiaXRzIG9m
IHRoZSBERkFCeXRlY29kZUluc3RydWN0aW9ucyB0aGF0IGhhdmUgYSBqdW1wLgogZW51bSBjbGFz
cyBERkFCeXRlY29kZUp1bXBTaXplIDogdWludDhfdCB7Ci0gICAgSW50OCA9IDB4MTAsCi0gICAg
SW50MTYgPSAweDIwLAotICAgIEludDI0ID0gMHgzMCwKLSAgICBJbnQzMiA9IDB4NDAsCisgICAg
SW50OCA9IDB4MDAsCisgICAgSW50MTYgPSAweDEwLAorICAgIEludDI0ID0gMHgyMCwKKyAgICBJ
bnQzMiA9IDB4MzAsCiB9Owogc3RhdGljIGNvbnN0ZXhwciBpbnQzMl90IFVJbnQyNE1heCA9ICgx
IDw8IDI0KSAtIDE7CiBzdGF0aWMgY29uc3RleHByIGludDMyX3QgSW50MjRNYXggPSAoMSA8PCAy
MykgLSAxOwpAQCAtMTExLDE3ICsxMTEsNiBAQCBzdGF0aWMgY29uc3RleHByIGludDMyX3QgSW50
MjRNaW4gPSAtKDEgPDwgMjMpOwogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgSW50MjRTaXplID0g
MzsKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IFVJbnQyNFNpemUgPSAzOwogCi1zdGF0aWMgaW5s
aW5lIERGQUJ5dGVjb2RlSnVtcFNpemUgc21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKGludDMyX3Qg
bG9uZ2VzdFBvc3NpYmxlSnVtcCkKLXsKLSAgICBpZiAobG9uZ2VzdFBvc3NpYmxlSnVtcCA8PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDhfdD46Om1heCgpICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAg
Pj0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ4X3Q+OjptaW4oKSkKLSAgICAgICAgcmV0dXJuIERG
QUJ5dGVjb2RlSnVtcFNpemU6OkludDg7Ci0gICAgaWYgKGxvbmdlc3RQb3NzaWJsZUp1bXAgPD0g
c3RkOjpudW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWF4KCkgJiYgbG9uZ2VzdFBvc3NpYmxlSnVt
cCA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDE2X3Q+OjptaW4oKSkKLSAgICAgICAgcmV0dXJu
IERGQUJ5dGVjb2RlSnVtcFNpemU6OkludDE2OwotICAgIGlmIChsb25nZXN0UG9zc2libGVKdW1w
IDw9IEludDI0TWF4ICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gSW50MjRNaW4pCi0gICAgICAg
IHJldHVybiBERkFCeXRlY29kZUp1bXBTaXplOjpJbnQyNDsKLSAgICByZXR1cm4gREZBQnl0ZWNv
ZGVKdW1wU2l6ZTo6SW50MzI7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zCiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVDb21waWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBp
bGVyLmNwcAppbmRleCBhM2JjZTgwNDBhNGVjOTUwNWI0YTRmODBlZTI3NDg5ZTMxZjIwMWRhLi5m
NjYzZWZmNWMwZTIwYmU2OWQ0MjA4ODJlZjFiNzExODg0MTk1NjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVyLmNw
cApAQCAtMTUxLDcgKzE1MSwxOCBAQCBpbnQzMl90IERGQUJ5dGVjb2RlQ29tcGlsZXI6Omxvbmdl
c3RQb3NzaWJsZUp1bXAodWludDMyX3QgaW5zdHJ1Y3Rpb25Mb2NhdGlvbiwgdQogICAgIEFTU0VS
VChtX25vZGVTdGFydE9mZnNldHNbZGVzdGluYXRpb25Ob2RlSW5kZXhdIDw9IGluc3RydWN0aW9u
TG9jYXRpb24pOwogICAgIHJldHVybiBtX25vZGVTdGFydE9mZnNldHNbZGVzdGluYXRpb25Ob2Rl
SW5kZXhdIC0gaW5zdHJ1Y3Rpb25Mb2NhdGlvbjsKIH0KLSAgICAKKworc3RhdGljIERGQUJ5dGVj
b2RlSnVtcFNpemUgc21hbGxlc3RQb3NzaWJsZUp1bXBTaXplKGludDMyX3QgbG9uZ2VzdFBvc3Np
YmxlSnVtcCkKK3sKKyAgICBpZiAobG9uZ2VzdFBvc3NpYmxlSnVtcCA8PSBzdGQ6Om51bWVyaWNf
bGltaXRzPGludDhfdD46Om1heCgpICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gc3RkOjpudW1l
cmljX2xpbWl0czxpbnQ4X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIERGQUJ5dGVjb2RlSnVt
cFNpemU6OkludDg7CisgICAgaWYgKGxvbmdlc3RQb3NzaWJsZUp1bXAgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQxNl90Pjo6bWF4KCkgJiYgbG9uZ2VzdFBvc3NpYmxlSnVtcCA+PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDE2X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIERGQUJ5dGVjb2Rl
SnVtcFNpemU6OkludDE2OworICAgIGlmIChsb25nZXN0UG9zc2libGVKdW1wIDw9IEludDI0TWF4
ICYmIGxvbmdlc3RQb3NzaWJsZUp1bXAgPj0gSW50MjRNaW4pCisgICAgICAgIHJldHVybiBERkFC
eXRlY29kZUp1bXBTaXplOjpJbnQyNDsKKyAgICByZXR1cm4gREZBQnl0ZWNvZGVKdW1wU2l6ZTo6
SW50MzI7Cit9CisKIHZvaWQgREZBQnl0ZWNvZGVDb21waWxlcjo6ZW1pdEp1bXAodWludDMyX3Qg
c291cmNlTm9kZUluZGV4LCB1aW50MzJfdCBkZXN0aW5hdGlvbk5vZGVJbmRleCkKIHsKICAgICB1
aW50MzJfdCBpbnN0cnVjdGlvbkxvY2F0aW9uID0gbV9ieXRlY29kZS5zaXplKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAKaW5k
ZXggMTlkZWNmNjc2OTQ5NGVmMzIxZjRjN2Y5YThkZDNhYTcxODY2YTZhMC4uNWEyYTUyNTkzYjUw
ZmJiYmJlNDUyMDA3NGViMGY5MzJjMjY1NGNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmNwcApAQCAtNDYsNyArNDYsNyBAQCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6fldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0KCkK
IAogYm9vbCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y29uZGl0aW9uc0FwcGx5T25seVRv
RG9tYWluKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDMyX3QqPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4obV9kYXRhLmRhdGEtPmRhdGEoKSkg
KyBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsKKyAgICByZXR1cm4g
bV9kYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKIH0KIAogU3Bhbjxjb25zdCB1aW50
OF90PiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGUoKSBjb25zdApAQCAtNjQsNiArNjQsMTEgQEAgU3Bhbjxjb25zdCB1aW50OF90PiBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dG9wVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gc3BhbldpdGhPZmZzZXRBbmRMZW5ndGgobV9kYXRhLnRvcFVSTEZpbHRlcnNC
eXRlY29kZU9mZnNldCwgbV9kYXRhLnRvcFVSTEZpbHRlcnNCeXRlY29kZVNpemUpOwogfQogCitT
cGFuPGNvbnN0IHVpbnQ4X3Q+IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmcmFtZVVSTEZp
bHRlcnNCeXRlY29kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNwYW5XaXRoT2Zmc2V0QW5kTGVu
Z3RoKG1fZGF0YS5mcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgbV9kYXRhLmZyYW1lVVJM
RmlsdGVyc0J5dGVjb2RlU2l6ZSk7Cit9CisKIFNwYW48Y29uc3QgdWludDhfdD4gV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q6OnNlcmlhbGl6ZWRBY3Rpb25zKCkgY29uc3QKIHsKICAgICByZXR1
cm4gc3BhbldpdGhPZmZzZXRBbmRMZW5ndGgobV9kYXRhLmFjdGlvbnNPZmZzZXQsIG1fZGF0YS5h
Y3Rpb25zU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3QuaAppbmRleCA5YmI5ZmZlZTMzODBlZmQ2ZTMwZTAyZTg1M2U0NTAyNmVhZWQ0
YzE1Li5jMzQzNGFlZDU4MmI3Y2NkN2ZkZTZkMTQyZGJhMzk1NDE1YzAxZjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRo
b3V0Q29uZGl0aW9uc0J5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAgICAgU3Bhbjxjb25zdCB1aW50
OF90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsOwogICAgIFNw
YW48Y29uc3QgdWludDhfdD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgZmluYWw7Cisg
ICAgU3Bhbjxjb25zdCB1aW50OF90PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0IGZp
bmFsOwogICAgIFNwYW48Y29uc3QgdWludDhfdD4gc2VyaWFsaXplZEFjdGlvbnMoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0IGZpbmFs
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3REYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0RGF0YS5jcHAKaW5kZXggODNmYTAyZmZhYjE1NDI5YjhjNWM4ZTM1ODFkMGNi
ODJiNmJiZTcxMC4uZmRlODNjMmE2ZTU5MTM3ZWJkZGViM2JkZTk5ZjczNDJmNjY3Zjg1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiAg
ICAgZW5jb2RlciA8PCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwg
ZGF0YVNpemUgfTsKIAotICAgIGVuY29kZXIgPDwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
T2Zmc2V0OworICAgIGVuY29kZXIgPDwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwogICAg
IGVuY29kZXIgPDwgYWN0aW9uc09mZnNldDsKICAgICBlbmNvZGVyIDw8IGFjdGlvbnNTaXplOwog
ICAgIGVuY29kZXIgPDwgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CkBA
IC01OCw2ICs1OCw4IEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgdG9wVVJMRmlsdGVyc0J5
dGVjb2RlT2Zmc2V0OwogICAgIGVuY29kZXIgPDwgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsK
KyAgICBlbmNvZGVyIDw8IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OworICAgIGVuY29k
ZXIgPDwgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOwogfQogCiBzdGQ6Om9wdGlvbmFsPFdl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzQsNTUgKzc2LDY1IEBAIHN0
ZDo6b3B0aW9uYWw8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGE6OmRlCiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gY29uZGl0aW9uc0FwcGx5
T25seVRvRG9tYWluT2Zmc2V0OwotICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRv
RG9tYWluT2Zmc2V0OwotICAgIGlmICghY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0
KQorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwor
ICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAgIGlmICghY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
Ci0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gYWN0aW9uc09mZnNldDsKKyAgICBzdGQ6Om9w
dGlvbmFsPHNpemVfdD4gYWN0aW9uc09mZnNldDsKICAgICBkZWNvZGVyID4+IGFjdGlvbnNPZmZz
ZXQ7CiAgICAgaWYgKCFhY3Rpb25zT2Zmc2V0KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gYWN0aW9uc1NpemU7CisgICAgc3RkOjpv
cHRpb25hbDxzaXplX3Q+IGFjdGlvbnNTaXplOwogICAgIGRlY29kZXIgPj4gYWN0aW9uc1NpemU7
CiAgICAgaWYgKCFhY3Rpb25zU2l6ZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAot
ICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVj
b2RlT2Zmc2V0OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaWx0ZXJzV2l0aG91dENvbmRp
dGlvbnNCeXRlY29kZU9mZnNldDsKICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0
aW9uc0J5dGVjb2RlT2Zmc2V0OwogICAgIGlmICghZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVPZmZzZXQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkPiBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemU7Cisg
ICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZTsKICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6
ZTsKICAgICBpZiAoIWZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6
ZV90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZU9mZnNldDsKICAgICBkZWNvZGVyID4+
IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogICAgIGlmICghZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRl
Y29kZVNpemU7CisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9u
c0J5dGVjb2RlU2l6ZTsKICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVj
b2RlU2l6ZTsKICAgICBpZiAoIWZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+
IHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldDsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4g
dG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OwogICAgIGRlY29kZXIgPj4gdG9wVVJMRmlsdGVy
c0J5dGVjb2RlT2Zmc2V0OwogICAgIGlmICghdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4g
dG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZTsKICAgICBkZWNvZGVyID4+IHRvcFVSTEZpbHRlcnNC
eXRlY29kZVNpemU7CiAgICAgaWYgKCF0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZyYW1l
VVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0OworICAgIGRlY29kZXIgPj4gZnJhbWVVUkxGaWx0ZXJz
Qnl0ZWNvZGVPZmZzZXQ7CisgICAgaWYgKCFmcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90
PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7CisgICAgZGVjb2RlciA+PiBmcmFtZVVSTEZp
bHRlcnNCeXRlY29kZVNpemU7CisgICAgaWYgKCFmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICByZXR1cm4ge3sKICAgICAgICAg
V1RGTW92ZSgqaWRlbnRpZmllciksCiAgICAgICAgIGRhdGEucmVsZWFzZU5vbk51bGwoKSwKLSAg
ICAgICAgV1RGTW92ZSgqY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KSwKKyAgICAg
ICAgV1RGTW92ZSgqY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKSwKICAgICAgICAgV1RGTW92
ZSgqYWN0aW9uc09mZnNldCksCiAgICAgICAgIFdURk1vdmUoKmFjdGlvbnNTaXplKSwKICAgICAg
ICAgV1RGTW92ZSgqZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpLApAQCAt
MTMwLDcgKzE0Miw5IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhPiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmRlCiAgICAgICAgIFdURk1vdmUo
KmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0KSwKICAgICAgICAgV1RGTW92ZSgq
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplKSwKICAgICAgICAgV1RGTW92ZSgqdG9w
VVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KSwKLSAgICAgICAgV1RGTW92ZSgqdG9wVVJMRmlsdGVy
c0J5dGVjb2RlU2l6ZSkKKyAgICAgICAgV1RGTW92ZSgqdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6
ZSksCisgICAgICAgIFdURk1vdmUoKmZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KSwKKyAg
ICAgICAgV1RGTW92ZSgqZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgIH19OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YS5oCmluZGV4IGE0ODAzNWJmYWQ4NmNhNTgyOGUyMTRhMmU0YzNmY2U1Y2FmYzk2Y2Qu
LmQxNGMyMTBiMDQxOWQ4MDlkOTdmNzgwOTVlMGRiMzNiNjcyM2IyNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCkBA
IC00MSwxMCArNDEsMTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YSB7CiBwdWJsaWM6Ci0gICAgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhKFN0cmluZyYmIGlkZW50aWZpZXIsIFJlZjxTaGFyZWRNZW1vcnk+JiYgZGF0YSwg
dW5zaWduZWQgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0LCB1bnNpZ25lZCBhY3Rp
b25zT2Zmc2V0LCB1bnNpZ25lZCBhY3Rpb25zU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRD
b25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZz
ZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQg
dG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNv
ZGVTaXplKQorICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YShTdHJpbmcmJiBpZGVu
dGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIGRhdGEsIGJvb2wgY29uZGl0aW9uc0FwcGx5T25s
eVRvRG9tYWluLCBzaXplX3QgYWN0aW9uc09mZnNldCwgc2l6ZV90IGFjdGlvbnNTaXplLCBzaXpl
X3QgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHNpemVfdCBmaWx0ZXJz
V2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHNpemVfdCBmaWx0ZXJzV2l0aENvbmRpdGlv
bnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6
ZSwgc2l6ZV90IHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IHRvcFVSTEZpbHRl
cnNCeXRlY29kZVNpemUsIHNpemVfdCBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgc2l6
ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKICAgICAgICAgOiBpZGVudGlmaWVyKFdU
Rk1vdmUoaWRlbnRpZmllcikpCiAgICAgICAgICwgZGF0YShXVEZNb3ZlKGRhdGEpKQotICAgICAg
ICAsIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldChjb25kaXRpb25zQXBwbHlPbmx5
VG9Eb21haW5PZmZzZXQpCisgICAgICAgICwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKGNv
bmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbikKICAgICAgICAgLCBhY3Rpb25zT2Zmc2V0KGFjdGlv
bnNPZmZzZXQpCiAgICAgICAgICwgYWN0aW9uc1NpemUoYWN0aW9uc1NpemUpCiAgICAgICAgICwg
ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQoZmlsdGVyc1dpdGhvdXRDb25k
aXRpb25zQnl0ZWNvZGVPZmZzZXQpCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICAgICAg
LCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUoZmlsdGVyc1dpdGhDb25kaXRpb25z
Qnl0ZWNvZGVTaXplKQogICAgICAgICAsIHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCh0b3BV
UkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgICwgdG9wVVJMRmlsdGVyc0J5dGVjb2Rl
U2l6ZSh0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQorICAgICAgICAsIGZyYW1lVVJMRmlsdGVy
c0J5dGVjb2RlT2Zmc2V0KGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0KQorICAgICAgICAs
IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZShmcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemUp
CiAgICAgewogICAgIH0KIApAQCAtNjEsMTUgKzYzLDE3IEBAIHB1YmxpYzoKIAogICAgIFN0cmlu
ZyBpZGVudGlmaWVyOwogICAgIFJlZjxTaGFyZWRNZW1vcnk+IGRhdGE7Ci0gICAgdW5zaWduZWQg
Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0IHsgMCB9OwotICAgIHVuc2lnbmVkIGFj
dGlvbnNPZmZzZXQgeyAwIH07Ci0gICAgdW5zaWduZWQgYWN0aW9uc1NpemUgeyAwIH07Ci0gICAg
dW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQgeyAwIH07Ci0g
ICAgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplIHsgMCB9Owot
ICAgIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0IHsgMCB9Owot
ICAgIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSB7IDAgfTsKLSAg
ICB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQgeyAwIH07Ci0gICAgdW5zaWdu
ZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAgfTsKKyAgICBib29sIGNvbmRpdGlvbnNB
cHBseU9ubHlUb0RvbWFpbiB7IDAgfTsKKyAgICBzaXplX3QgYWN0aW9uc09mZnNldCB7IDAgfTsK
KyAgICBzaXplX3QgYWN0aW9uc1NpemUgeyAwIH07CisgICAgc2l6ZV90IGZpbHRlcnNXaXRob3V0
Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZVNpemUgeyAwIH07CisgICAgc2l6ZV90IGZpbHRlcnNXaXRoQ29u
ZGl0aW9uc0J5dGVjb2RlT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBmaWx0ZXJzV2l0aENvbmRp
dGlvbnNCeXRlY29kZVNpemUgeyAwIH07CisgICAgc2l6ZV90IHRvcFVSTEZpbHRlcnNCeXRlY29k
ZU9mZnNldCB7IDAgfTsKKyAgICBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAg
fTsKKyAgICBzaXplX3QgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQgeyAwIH07CisgICAg
c2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAgfTsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3Rv
cmUuY3BwCmluZGV4IDNjNzliNDE5MmYxOWFhMWMxYzBjNmM0MWUxMTdhNjdkM2RlZTkzYjcuLjM2
YTZmNGZiMDdmMGFiOWRkYzdhNDYxOGZlZDQyMmVjMzg5NzQwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcApA
QCAtOTYsOCArOTYsMTQgQEAgc3RhdGljIFdURjo6U3RyaW5nIGNvbnN0cnVjdGVkUGF0aChjb25z
dCBXVEY6OlN0cmluZyYgYmFzZSwgY29uc3QgV1RGOjpTdHJpbmcmIGkKIAogLy8gVGhlIHNpemUg
YW5kIG9mZnNldCBvZiB0aGUgZGVuc2VseSBwYWNrZWQgYnl0ZXMgaW4gdGhlIGZpbGUsIG5vdCBz
aXplb2YgYW5kIG9mZnNldG9mLCB3aGljaCB3b3VsZAogLy8gcmVwcmVzZW50IHRoZSBzaXplIGFu
ZCBvZmZzZXQgb2YgdGhlIHN0cnVjdHVyZSBpbiBtZW1vcnksIHBvc3NpYmx5IHdpdGggY29tcGls
ZXItYWRkZWQgcGFkZGluZy4KLWNvbnN0IHNpemVfdCBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVy
U2l6ZSA9IDIgKiBzaXplb2YodWludDMyX3QpICsgNSAqIHNpemVvZih1aW50NjRfdCk7Ci1jb25z
dCBzaXplX3QgQ29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0ID0gc2l6ZW9mKHVpbnQz
Ml90KSArIDUgKiBzaXplb2YodWludDY0X3QpOworY29uc3Qgc2l6ZV90IEN1cnJlbnRWZXJzaW9u
RmlsZUhlYWRlclNpemUgPSAyICogc2l6ZW9mKHVpbnQzMl90KSArIDcgKiBzaXplb2YodWludDY0
X3QpOworCitzdGF0aWMgc2l6ZV90IGhlYWRlclNpemUodWludDMyX3QgdmVyc2lvbikKK3sKKyAg
ICBpZiAodmVyc2lvbiA8IDEyKQorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih1aW50MzJfdCkg
KyA1ICogc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICByZXR1cm4gQ3VycmVudFZlcnNpb25GaWxlSGVh
ZGVyU2l6ZTsKK30KIAogc3RydWN0IENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIHsKICAgICB1aW50
MzJfdCB2ZXJzaW9uIHsgQ29udGVudFJ1bGVMaXN0U3RvcmU6OkN1cnJlbnRDb250ZW50UnVsZUxp
c3RGaWxlVmVyc2lvbiB9OwpAQCAtMTA3LDE1ICsxMTMsMTggQEAgc3RydWN0IENvbnRlbnRSdWxl
TGlzdE1ldGFEYXRhIHsKICAgICB1aW50NjRfdCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29k
ZVNpemUgeyAwIH07CiAgICAgdWludDY0X3QgY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXpl
IHsgMCB9OwogICAgIHVpbnQzMl90IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiB7IGZhbHNl
IH07CisgICAgdWludDY0X3QgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplIHsgMCB9OworICAg
IHVpbnQ2NF90IHVudXNlZCB7IDAgfTsgLy8gQWRkaXRpb25hbCBzcGFjZSBvbiBkaXNrIHJlc2Vy
dmVkIHNvIHdlIGNhbiBhZGQgc29tZXRoaW5nIHdpdGhvdXQgaW5jcmVtZW50aW5nIHRoZSB2ZXJz
aW9uIG51bWJlci4KICAgICAKICAgICBzaXplX3QgZmlsZVNpemUoKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIENvbnRlbnRSdWxlTGlzdEZpbGVIZWFkZXJTaXplCisgICAgICAgIHJldHVy
biBoZWFkZXJTaXplKHZlcnNpb24pCiAgICAgICAgICAgICArIHNvdXJjZVNpemUKICAgICAgICAg
ICAgICsgYWN0aW9uc1NpemUKICAgICAgICAgICAgICsgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVTaXplCiAgICAgICAgICAgICArIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZQotICAgICAgICAgICAgKyBjb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemU7CisgICAg
ICAgICAgICArIGNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZQorICAgICAgICAgICAgKyBm
cmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7CiAgICAgfQogfTsKIApAQCAtMTMwLDggKzEzOSwx
MCBAQCBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEgZW5jb2RlQ29udGVudFJ1bGVM
aXN0TWV0YURhdGEoY29uc3QgQ29udGVudFJ1bAogICAgIGVuY29kZXIgPDwgbWV0YURhdGEuZmls
dGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgbWV0YURhdGEu
Y29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOwogICAgIGVuY29kZXIgPDwgbWV0YURhdGEu
Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAgIGVuY29kZXIgPDwgbWV0YURhdGEuZnJh
bWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGVuY29kZXIgPDwgbWV0YURhdGEudW51c2Vk
OwogCi0gICAgQVNTRVJUKGVuY29kZXIuYnVmZmVyU2l6ZSgpID09IENvbnRlbnRSdWxlTGlzdEZp
bGVIZWFkZXJTaXplKTsKKyAgICBBU1NFUlQoZW5jb2Rlci5idWZmZXJTaXplKCkgPT0gQ3VycmVu
dFZlcnNpb25GaWxlSGVhZGVyU2l6ZSk7CiAgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya0NhY2hl
OjpEYXRhKGVuY29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsKIH0KIApAQCAt
MTQ1LDY2ICsxNTYsNzAgQEAgdGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3QgV2ViQ29yZTo6
U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBGdW5jdGlvbjxib29sKFMKICAgICBmdW5jdGlvbih7
IGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSB9KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LXN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250
ZW50UnVsZUxpc3RNZXRhRGF0YShjb25zdCBUJiBmaWxlRGF0YSkKK3N0YXRpYyBzdGQ6Om9wdGlv
bmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0
YShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEpCiB7Ci0gICAgYm9v
bCBzdWNjZXNzID0gZmFsc2U7CiAgICAgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7
Ci0gICAgZ2V0RGF0YShmaWxlRGF0YSwgWyZtZXRhRGF0YSwgJnN1Y2Nlc3MsICZmaWxlRGF0YV0o
U3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKSB7Ci0gICAgICAgIC8vIFRoZSBmaWxlIGRhdGEgc2hv
dWxkIGJlIG1hcHBlZCBpbnRvIG9uZSBjb250aW51b3VzIG1lbW9yeSBzZWdtZW50IHNvIHRoZSBz
aXplCi0gICAgICAgIC8vIHBhc3NlZCB0byB0aGUgYXBwbGllciBzaG91bGQgYWx3YXlzIGVxdWFs
IHRoZSBkYXRhIHNpemUuCi0gICAgICAgIGlmIChzcGFuLnNpemUoKSAhPSBmaWxlRGF0YS5zaXpl
KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byBzcGFuID0gZmlsZURhdGEu
c3BhbigpOwogCi0gICAgICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgZGVjb2RlcihzcGFu
KTsKLSAgICAgICAgCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZlcnNpb247Ci0g
ICAgICAgIGRlY29kZXIgPj4gdmVyc2lvbjsKLSAgICAgICAgaWYgKCF2ZXJzaW9uKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXRhRGF0YS52ZXJzaW9uID0gV1RGTW92ZSgq
dmVyc2lvbik7CisgICAgV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlciBkZWNvZGVyKHNwYW4pOwor
ICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZlcnNpb247CisgICAgZGVjb2RlciA+
PiB2ZXJzaW9uOworICAgIGlmICghdmVyc2lvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBtZXRhRGF0YS52ZXJzaW9uID0gV1RGTW92ZSgqdmVyc2lvbik7CiAKLSAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gc291cmNlU2l6ZTsKLSAgICAgICAgZGVjb2RlciA+PiBz
b3VyY2VTaXplOwotICAgICAgICBpZiAoIXNvdXJjZVNpemUpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLnNvdXJjZVNpemUgPSBXVEZNb3ZlKCpzb3VyY2VTaXpl
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBzb3VyY2VTaXplOworICAgIGRlY29kZXIg
Pj4gc291cmNlU2l6ZTsKKyAgICBpZiAoIXNvdXJjZVNpemUpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgbWV0YURhdGEuc291cmNlU2l6ZSA9IFdURk1vdmUoKnNvdXJjZVNpemUp
OwogCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGFjdGlvbnNTaXplOwotICAgICAg
ICBkZWNvZGVyID4+IGFjdGlvbnNTaXplOwotICAgICAgICBpZiAoIWFjdGlvbnNTaXplKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXRhRGF0YS5hY3Rpb25zU2l6ZSA9IFdU
Rk1vdmUoKmFjdGlvbnNTaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBhY3Rpb25z
U2l6ZTsKKyAgICBkZWNvZGVyID4+IGFjdGlvbnNTaXplOworICAgIGlmICghYWN0aW9uc1NpemUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgbWV0YURhdGEuYWN0aW9uc1NpemUg
PSBXVEZNb3ZlKCphY3Rpb25zU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVy
ID4+IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFm
aWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2Rl
U2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7Cisg
ICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNv
ZGVTaXplOworICAgIGRlY29kZXIgPj4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVT
aXplOworICAgIGlmICghZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5
dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVyID4+IGZpbHRlcnNXaXRo
Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFmaWx0ZXJzV2l0aENvbmRpdGlv
bnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFE
YXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNX
aXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIgPj4gZmlsdGVy
c1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplOworICAgIGlmICghZmlsdGVyc1dpdGhDb25kaXRp
b25zQnl0ZWNvZGVTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFE
YXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZpbHRlcnNX
aXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOwotICAgICAgICBkZWNvZGVyID4+
IGNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZTsKLSAgICAgICAgaWYgKCFjb25kaXRpb25l
ZEZpbHRlcnNCeXRlY29kZVNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IG1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmNvbmRp
dGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSk7CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
Y29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGRlY29kZXIgPj4gY29uZGl0aW9u
ZWRGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGlmICghY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNv
ZGVTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLmNvbmRp
dGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmNvbmRpdGlvbmVkRmlsdGVyc0J5
dGVjb2RlU2l6ZSk7CiAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gY29uZGl0aW9u
c0FwcGx5T25seVRvRG9tYWluOwotICAgICAgICBkZWNvZGVyID4+IGNvbmRpdGlvbnNBcHBseU9u
bHlUb0RvbWFpbjsKLSAgICAgICAgaWYgKCFjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4pCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1ldGFEYXRhLmNvbmRpdGlvbnNBcHBs
eU9ubHlUb0RvbWFpbiA9IFdURk1vdmUoKmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbik7Cisg
ICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOwor
ICAgIGRlY29kZXIgPj4gY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluOworICAgIGlmICghY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIG1ldGFEYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IFdURk1vdmUoKmNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbik7CiAKLSAgICAgICAgc3VjY2VzcyA9IHRydWU7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9KTsKLSAgICBpZiAoIXN1Y2Nlc3MpCisgICAgaWYgKG1l
dGFEYXRhLnZlcnNpb24gPCAxMikKKyAgICAgICAgcmV0dXJuIG1ldGFEYXRhOworCisgICAgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGRl
Y29kZXIgPj4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplOworICAgIGlmICghZnJhbWVVUkxG
aWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1l
dGFEYXRhLmZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IFdURk1vdmUoKmZyYW1lVVJMRmls
dGVyc0J5dGVjb2RlU2l6ZSk7CisgICAgCisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdW51
c2VkOworICAgIGRlY29kZXIgPj4gdW51c2VkOworICAgIGlmICghdW51c2VkKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIG1ldGFEYXRhLnVudXNlZCA9IDA7CisKICAgICByZXR1
cm4gbWV0YURhdGE7CiB9CiAKQEAgLTM1OSw3ICszNzQsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8TWFw
cGVkRGF0YSwgc3RkOjplcnJvcl9jb2RlPiBjb21waWxlZFRvRmlsZShXVEY6OlN0cmluZyYmIGpz
b24sCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50UnVsZUxpc3RTdG9yZTo6
RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwogICAgIH0KICAgICAKLSAgICBjaGFyIGludmFsaWRIZWFk
ZXJbQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemVdOworICAgIGNoYXIgaW52YWxpZEhlYWRl
cltDdXJyZW50VmVyc2lvbkZpbGVIZWFkZXJTaXplXTsKICAgICBtZW1zZXQoaW52YWxpZEhlYWRl
ciwgMHhGRiwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKTsKICAgICAvLyBUaGlzIGhlYWRlciB3aWxs
IGJlIHJld3JpdHRlbiBpbiBDb21waWxhdGlvbkNsaWVudDo6ZmluYWxpemUuCiAgICAgaWYgKHdy
aXRlVG9GaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUsIGludmFsaWRIZWFkZXIsIHNpemVvZihpbnZh
bGlkSGVhZGVyKSkgPT0gLTEpIHsKQEAgLTQxMCwxMSArNDI1LDExIEBAIHN0YXRpYyBSZWY8QVBJ
OjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRl
bnRpZmllciwKICAgICAvLyBoYXMgYmVlbiBhbHJlYWR5IG1hcHBlZCwgdGhlcmVmb3JlIHRyeUNy
ZWF0ZVNoYXJlZE1lbW9yeSgpIGNhbm5vdCBmYWlsLgogICAgIFJFTEVBU0VfQVNTRVJUKHNoYXJl
ZE1lbW9yeSk7CiAKLSAgICBjb25zdCBzaXplX3QgaGVhZGVyQW5kU291cmNlU2l6ZSA9IENvbnRl
bnRSdWxlTGlzdEZpbGVIZWFkZXJTaXplICsgZGF0YS5tZXRhRGF0YS5zb3VyY2VTaXplOworICAg
IGNvbnN0IHNpemVfdCBoZWFkZXJBbmRTb3VyY2VTaXplID0gaGVhZGVyU2l6ZShkYXRhLm1ldGFE
YXRhLnZlcnNpb24pICsgZGF0YS5tZXRhRGF0YS5zb3VyY2VTaXplOwogICAgIGF1dG8gY29tcGls
ZWRDb250ZW50UnVsZUxpc3REYXRhID0gV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dERhdGEoCiAgICAgICAgIFdURjo6U3RyaW5nKGlkZW50aWZpZXIpLAogICAgICAgICBzaGFyZWRN
ZW1vcnkucmVsZWFzZU5vbk51bGwoKSwKLSAgICAgICAgQ29uZGl0aW9uc0FwcGx5T25seVRvRG9t
YWluT2Zmc2V0LAorICAgICAgICBkYXRhLm1ldGFEYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbiwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZSwKICAgICAgICAgZGF0YS5tZXRhRGF0
YS5hY3Rpb25zU2l6ZSwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZQpAQCAtNDI4LDcgKzQ0
MywxMyBAQCBzdGF0aWMgUmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0PiBjcmVhdGVFeHRlbnNpb24o
Y29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsCiAgICAgICAgICAgICArIGRhdGEubWV0YURh
dGEuYWN0aW9uc1NpemUKICAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5maWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZVNpemUKICAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5maWx0
ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCi0gICAgICAgIGRhdGEubWV0YURhdGEuY29u
ZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplCisgICAgICAgIGRhdGEubWV0YURhdGEuY29uZGl0
aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplLAorICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplCisg
ICAgICAgICAgICArIGRhdGEubWV0YURhdGEuYWN0aW9uc1NpemUKKyAgICAgICAgICAgICsgZGF0
YS5tZXRhRGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUKKyAgICAgICAg
ICAgICsgZGF0YS5tZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUKKyAg
ICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5jb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemUs
CisgICAgICAgIGRhdGEubWV0YURhdGEuZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplCiAgICAg
KTsKICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViS2l0OjpXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhKSk7CiAgICAgcmV0dXJuIEFQSTo6Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShj
b21waWxlZENvbnRlbnRSdWxlTGlzdCksIFdURk1vdmUoZGF0YS5kYXRhKSk7CkBAIC00NDIsMTAg
KzQ2MywxMyBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgZ2V0Q29udGVudFJ1bGVMaXN0U291cmNlRnJv
bU1hcHBlZEZpbGUoY29uc3QgTWFwcGVkRGF0YSYgbWFwcAogICAgIGNhc2UgOToKICAgICBjYXNl
IDEwOgogICAgIGNhc2UgMTE6CisgICAgY2FzZSAxMjoKICAgICAgICAgaWYgKCFtYXBwZWREYXRh
Lm1ldGFEYXRhLnNvdXJjZVNpemUpCiAgICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBi
b29sIGlzOEJpdCA9IG1hcHBlZERhdGEuZGF0YS5kYXRhKClbQ29udGVudFJ1bGVMaXN0RmlsZUhl
YWRlclNpemVdOwotICAgICAgICBzaXplX3Qgc3RhcnQgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVh
ZGVyU2l6ZSArIHNpemVvZihib29sKTsKKyAgICAgICAgICAgIAorICAgICAgICBhdXRvIGhlYWRl
clNpemVCeXRlcyA9IGhlYWRlclNpemUobWFwcGVkRGF0YS5tZXRhRGF0YS52ZXJzaW9uKTsKKyAg
ICAgICAgYm9vbCBpczhCaXQgPSBtYXBwZWREYXRhLmRhdGEuZGF0YSgpW2hlYWRlclNpemVCeXRl
c107CisgICAgICAgIHNpemVfdCBzdGFydCA9IGhlYWRlclNpemVCeXRlcyArIHNpemVvZihib29s
KTsKICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IG1hcHBlZERhdGEubWV0YURhdGEuc291cmNlU2l6
ZSAtIHNpemVvZihib29sKTsKICAgICAgICAgaWYgKGlzOEJpdCkKICAgICAgICAgICAgIHJldHVy
biBXVEY6OlN0cmluZyhtYXBwZWREYXRhLmRhdGEuZGF0YSgpICsgc3RhcnQsIGxlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RT
dG9yZS5oCmluZGV4IDg4MjA0ZjAwMTM2Nzg2MDQ1YTViMzJhNzNjNjc4YTBiYTg1MDY4MWMuLjdm
YzA1NDU3ZTY0Y2Y1ODliMGZiMGU3ZTAzNmY2OTBmYTJjMTdiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCkBAIC01
NCwxMCArNTQsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAg
ICAvLyBUaGlzIHNob3VsZCBiZSBpbmNyZW1lbnRlZCBldmVyeSB0aW1lIGEgZnVuY3Rpb25hbCBj
aGFuZ2UgaXMgbWFkZSB0byB0aGUgYnl0ZWNvZGUsIGZpbGUgZm9ybWF0LCBldGMuCiAgICAgLy8g
dG8gcHJldmVudCBjcmFzaGluZyB3aGlsZSBsb2FkaW5nIG9sZCBkYXRhLgotICAgIC8vIEFsc28g
dXBkYXRlIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpnZXRDb250ZW50UnVsZUxpc3RTb3VyY2UgdG8g
YmUgYWJsZSB0byBmaW5kIHRoZSBvcmlnaW5hbCBKU09OCisgICAgLy8gQWxzbyB1cGRhdGUgZ2V0
Q29udGVudFJ1bGVMaXN0U291cmNlRnJvbU1hcHBlZEZpbGUgdG8gYmUgYWJsZSB0byBmaW5kIHRo
ZSBvcmlnaW5hbCBKU09OCiAgICAgLy8gc291cmNlIGZyb20gb2xkIHZlcnNpb25zLgotICAgIC8v
IFVwZGF0ZSBnZXRDb250ZW50UnVsZUxpc3RTb3VyY2VGcm9tTWFwcGVkRmlsZSB3aXRoIHRoaXMu
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVMaXN0Rmls
ZVZlcnNpb24gPSAxMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEN1cnJlbnRDb250
ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9IDEyOwogCiAgICAgc3RhdGljIENvbnRlbnRSdWxlTGlz
dFN0b3JlJiBkZWZhdWx0U3RvcmUoKTsKICAgICBzdGF0aWMgUmVmPENvbnRlbnRSdWxlTGlzdFN0
b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwZjU4NTZkMGJk
ZmZmN2FmNDVmODA3ZTAzZGM0MGFlM2U4ZmNhNTEuLjQxMTU1MDg2OGM5N2YyODA1NWFhN2MyYzc5
MDk4OGNlYzg2ZWIwY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMi0wMiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCByb29tIGZvciBtb3JlIGJ5
dGVjb2RlIGluIFdLQ29udGVudFJ1bGVMaXN0IGZpbGUgZm9ybWF0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODAKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSGF0Y2hlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisKIDIwMjEtMTItMDEgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgU3BhbiBpbnN0ZWFkIG9m
IHBvaW50ZXIvbGVuZ3RoIGluIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAK
aW5kZXggY2QxYjA4OTk1N2ZmMWViMjg1ZjVkZjVkOWU3OGEwN2U2ZTAzNzE4Yi4uYzgzZTg3ODIw
MzYxMzAyZGVmYWE1ZjRlMTNiM2VlOTBmNzMwZjgyNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC02Niw2
ICs2Niw3IEBAIHN0cnVjdCBDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhIHsKICAgICBWZWN0
b3I8Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlPiBmaWx0ZXJzV2l0aG91dENvbmRpdGlv
bnM7CiAgICAgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29kZT4gZmlsdGVyc1dp
dGhDb25kaXRpb25zOwogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+
IHRvcFVSTEZpbHRlcnM7CisgICAgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29k
ZT4gZnJhbWVVUkxGaWx0ZXJzOwogICAgIGJvb2wgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
IHsgZmFsc2UgfTsKIH07CiAKQEAgLTE0Nyw2ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIFNwYW48
Y29uc3QgdWludDhfdD4gZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB7IG1fZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnMuZGF0YSgpLCBt
X2RhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zLnNpemUoKSB9OyB9CiAgICAgU3Bhbjxjb25z
dCB1aW50OF90PiBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHsgbV9kYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9ucy5kYXRhKCksIG1fZGF0YS5maWx0
ZXJzV2l0aENvbmRpdGlvbnMuc2l6ZSgpIH07IH0KICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHRv
cFVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgbV9kYXRhLnRvcFVS
TEZpbHRlcnMuZGF0YSgpLCBtX2RhdGEudG9wVVJMRmlsdGVycy5zaXplKCkgfTsgfQorICAgIFNw
YW48Y29uc3QgdWludDhfdD4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB7IG1fZGF0YS5mcmFtZVVSTEZpbHRlcnMuZGF0YSgpLCBtX2RhdGEuZnJhbWVVUkxG
aWx0ZXJzLnNpemUoKSB9OyB9CiAgICAgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4o
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
OyB9CiAKICAgICBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbihDb21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhJiYgZGF0YSkKQEAgLTk2Niw3ICs5NjgsNyBAQCBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIFN0cmluZ0NvbWJpbmluZykKICAgICBBU1NFUlRfRVEoc2VxdWVuY2VJ
bnN0YW5jZXMoZGF0YS5hY3Rpb25zLCAiQUFBIiksIDIpOwogICAgIEFTU0VSVF9FUShzZXF1ZW5j
ZUluc3RhbmNlcyhkYXRhLmFjdGlvbnMsICJHR0ciKSwgMSk7CiAKLSAgICBBU1NFUlRfRVEoZGF0
YS5hY3Rpb25zLnNpemUoKSwgNzh1KTsKKyAgICBBU1NFUlRfRVEoZGF0YS5hY3Rpb25zLnNpemUo
KSwgNzJ1KTsKICAgICBBU1NFUlRfRVEoZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnMuc2l6
ZSgpLCAyODh1KTsKICAgICBBU1NFUlRfRVEoZGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnMuc2l6
ZSgpLCA1dSk7CiAgICAgQVNTRVJUX0VRKGRhdGEudG9wVVJMRmlsdGVycy5zaXplKCksIDV1KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250
ZW50RXh0ZW5zaW9uU3RvcmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCmluZGV4IGI5Mjg1MjA2NjQyOGY5ZDQzZjIw
N2E3NWRjODUwZmNmNzIxNDJiMDYuLmZhYTIyZDQ2ZjgzZGVjOTk1MDAyMTdkMmEwYjZlMzQ2NmI1
Y2Q5NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQpAQCAtMjUyLDcgKzI1Miw3
IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTm9uRGVmYXVsdFN0b3JlKQog
CiAgICAgTlNEYXRhICpkYXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6W3RlbXBE
aXIgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OmZpbGVOYW1lXV07CiAgICAgRVhQRUNUX05P
VF9OVUxMKGRhdGEpOwotICAgIEVYUEVDVF9FUShkYXRhLmxlbmd0aCwgMjI1dSk7CisgICAgRVhQ
RUNUX0VRKGRhdGEubGVuZ3RoLCAyNDF1KTsKICAgICAKICAgICBfX2Jsb2NrIGJvb2wgZG9uZUNo
ZWNraW5nU291cmNlID0gZmFsc2U7CiAgICAgW3N0b3JlIF9nZXRDb250ZW50UnVsZUxpc3RTb3Vy
Y2VGb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAq
c291cmNlKSB7Cg==
</data>
<flag name="commit-queue"
          id="471143"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>