<?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>216733</bug_id>
          
          <creation_ts>2020-09-19 13:07:30 -0700</creation_ts>
          <short_desc>[WinCairo][PlayStation] Support different instances of listener client.</short_desc>
          <delta_ts>2020-09-21 14:46:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>takashi.komori</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1690112</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-09-19 13:07:30 -0700</bug_when>
    <thetext>Currently RemoteInspectorSocketEndpoint support one client instance for all listeners. This patch allows listeners to create its own listener client on accept timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690113</commentid>
    <comment_count>1</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-09-19 13:08:06 -0700</bug_when>
    <thetext>This is the preparation for WebDriver support on socket backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690114</commentid>
    <comment_count>2</comment_count>
      <attachid>409210</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-09-19 13:13:06 -0700</bug_when>
    <thetext>Created attachment 409210
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690510</commentid>
    <comment_count>3</comment_count>
      <attachid>409320</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-09-21 14:17:45 -0700</bug_when>
    <thetext>Created attachment 409320
PATCH

Thanks Don.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690526</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-21 14:45:29 -0700</bug_when>
    <thetext>Committed r267370: &lt;https://trac.webkit.org/changeset/267370&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409320.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690527</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-21 14:46:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/69328900&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409210</attachid>
            <date>2020-09-19 13:13:06 -0700</date>
            <delta_ts>2020-09-21 14:17:45 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>bug-216733.diff</filename>
            <type>text/plain</type>
            <size>26964</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDEwNGIyZDIxNDM5Mi4uYjMyMDk1NzYyMDhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0wOS0xOSAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJv
XVtQbGF5U3RhdGlvbl0gU3VwcG9ydCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIGxpc3RlbmVyIGNs
aWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NjczMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1
cnJlbnRseSBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCBzdXBwb3J0IG9uZSBjbGllbnQg
aW5zdGFuY2UgZm9yIGFsbAorICAgICAgICBsaXN0ZW5lcnMuIFRoaXMgcGF0Y2ggYWxsb3dzIGxp
c3RlbmVycyB0byBjcmVhdGUgaXRzIG93biBsaXN0ZW5lciBjbGllbnQgb24KKyAgICAgICAgYWNj
ZXB0IHRpbWluZy4KKworICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxh
YmxlVGFyZ2V0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3Iu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25u
ZWN0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yQ29u
bmVjdGlvbkNsaWVudDo6ZGlkUmVjZWl2ZSk6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5jcHA6CisgICAgICAgIChJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoSW5zcGVj
dG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OmRvQWNjZXB0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OmRpZENsb3NlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpSZW1vdGVJ
bnNwZWN0b3JTb2NrZXRFbmRwb2ludCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3Bl
Y3RvclNvY2tldEVuZHBvaW50Ojp+UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQpOgorICAg
ICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6bGlzdGVuSW5l
dCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50Ojp3
b3JrZXJUaHJlYWQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludDo6Z2VuZXJhdGVDb25uZWN0aW9uSUQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Y3JlYXRlQ2xpZW50KToKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmRpc2Nvbm5lY3QpOgorICAgICAg
ICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Y3JlYXRlTGlzdGVu
ZXIpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6
aW52YWxpZGF0ZUNsaWVudCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjppbnZhbGlkYXRlTGlzdGVuZXIpOgorICAgICAgICAoSW5zcGVjdG9yOjpS
ZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Z2V0UG9ydCBjb25zdCk6CisgICAgICAgIChJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKToK
KyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnNlbmRJ
ZkVuYWJsZWQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludDo6c2VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVu
ZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oOgorCiAyMDIwLTA5
LTE4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERG
RyBzaG91bGQgZW5zdXJlIHRoZXJlIGFyZSBQaGFudG9tTG9jYWxzIGZvciB0aGUgdGFrZW4gYmxv
Y2sgb2Ygb3Bfam5lcV9wdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgKaW5kZXgg
MjBkOTc0ZDc1ODY0Li4wZTdiNWIyOTQ3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRh
cmdldC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
IAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rvci5oCmluZGV4
IDQyNDUxYTA1ZThjOS4uNGIyNTkxN2VkZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaApAQCAtNzksNyAr
NzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBSZW1vdGVJbnNwZWN0b3IgZmluYWwKICNl
bmRpZgogewogcHVibGljOgotICAgIGNsYXNzIENsaWVudCB7CisgICAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0cnVjdCBDYXBhYmlsaXRp
ZXMgewogICAgICAgICAgICAgYm9vbCByZW1vdGVBdXRvbWF0aW9uQWxsb3dlZCA6IDE7CkBAIC0y
MjQsNyArMjI0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFVTRShJTlNQRUNUT1JfU09DS0VU
X1NFUlZFUikKICAgICBIYXNoTWFwPFN0cmluZywgQ2FsbEhhbmRsZXI+JiBkaXNwYXRjaE1hcCgp
IGZpbmFsOwotICAgIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbklEKSBmaW5hbDsKKyAgICB2b2lk
IGRpZENsb3NlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklEKSBm
aW5hbDsKIAogICAgIHZvaWQgc2VuZFdlYkluc3BlY3RvckV2ZW50KGNvbnN0IFN0cmluZyYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNs
aWVudC5jcHAKaW5kZXggODk2NWRhMjFkYTgxLi5hZWI3ZmViOGUxNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JDb25uZWN0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5jcHAKQEAg
LTYyLDcgKzYyLDcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50OjpzZW5k
KENvbm5lY3Rpb25JRCBpZCwgY29uc3QgdWludDhfdCogZGF0YSwKICAgICBlbmRwb2ludC5zZW5k
KGlkLCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpOwogfQogCi12b2lkIFJlbW90ZUlu
c3BlY3RvckNvbm5lY3Rpb25DbGllbnQ6OmRpZFJlY2VpdmUoQ29ubmVjdGlvbklEIGNsaWVudElE
LCBWZWN0b3I8dWludDhfdD4mJiBkYXRhKQordm9pZCBSZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9u
Q2xpZW50OjpkaWRSZWNlaXZlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVj
dGlvbklEIGNsaWVudElELCBWZWN0b3I8dWludDhfdD4mJiBkYXRhKQogewogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3Bl
Y3RvckNvbm5lY3Rpb25DbGllbnQuaAppbmRleCA0YmQxNThkMzE3MTEuLjM1YTc4MGNkMDc1NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNs
aWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxDb25uZWN0aW9u
SUQ+IGNyZWF0ZUNsaWVudChQbGF0Zm9ybVNvY2tldFR5cGUpOwogICAgIHZvaWQgc2VuZChDb25u
ZWN0aW9uSUQsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCk7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmUoQ29ubmVjdGlvbklELCBWZWN0b3I8dWludDhfdD4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRSZWNlaXZlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklE
LCBWZWN0b3I8dWludDhfdD4mJikgb3ZlcnJpZGU7CiAKICAgICBzdHJ1Y3QgRXZlbnQgewogICAg
ICAgICBTdHJpbmcgbWV0aG9kTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNlcnZlci5jcHAKaW5kZXggZjk0ODViZmEyNmIxLi5mMmI0ODBmOTBhYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNw
ZWN0b3JTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIGJv
b2wgUmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzdGFydChjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50
MTZfdCBwb3J0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvJiBlbmRwb2ludCA9
IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnNpbmdsZXRvbigpOwot
ICAgIG1fc2VydmVyID0gZW5kcG9pbnQubGlzdGVuSW5ldChhZGRyZXNzLCBwb3J0LCAqdGhpcywg
UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKSk7CisgICAgbV9zZXJ2ZXIgPSBlbmRwb2ludC5s
aXN0ZW5JbmV0KGFkZHJlc3MsIHBvcnQsICp0aGlzKTsKICAgICByZXR1cm4gaXNSdW5uaW5nKCk7
CiB9CiAKQEAgLTY4LDE4ICs2OCwyMiBAQCBPcHRpb25hbDx1aW50MTZfdD4gUmVtb3RlSW5zcGVj
dG9yU2VydmVyOjpnZXRQb3J0KCkgY29uc3QKICAgICByZXR1cm4gZW5kcG9pbnQuZ2V0UG9ydCht
X3NlcnZlci52YWx1ZSgpKTsKIH0KIAotYm9vbCBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OmRpZEFj
Y2VwdChDb25uZWN0aW9uSUQgYWNjZXB0ZWRJRCwgQ29ubmVjdGlvbklELCBTb2NrZXQ6OkRvbWFp
bikKK09wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVtb3RlSW5zcGVjdG9yU2VydmVyOjpkb0FjY2Vw
dChSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYgZW5kcG9pbnQsIFBsYXRmb3JtU29ja2V0
VHlwZSBzb2NrZXQpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRv
JiBpbnNwZWN0b3IgPSBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpOwogICAgIGlmIChpbnNw
ZWN0b3IuaXNDb25uZWN0ZWQoKSkgewogICAgICAgICBMT0dfRVJST1IoIlJlbW90ZUluc3BlY3Rv
ciBjYW4gYWNjZXB0IG9ubHkgMSBjbGllbnQiKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICB9CiAKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhdXRvIG5ld0lEID0g
ZW5kcG9pbnQuY3JlYXRlQ2xpZW50KHNvY2tldCwgaW5zcGVjdG9yKSkgeworICAgICAgICBpbnNw
ZWN0b3IuY29ubmVjdChuZXdJRC52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIG5ld0lEOwogICAg
IH0KLSAgICBpbnNwZWN0b3IuY29ubmVjdChhY2NlcHRlZElEKTsKLSAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29j
a2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5oCmluZGV4IDRmNzNjNjYy
OTJjZi4uOTkyYzU5ZmNlM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNl
cnZlci5oCkBAIC00Niw4ICs0Niw4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExhenlO
ZXZlckRlc3Ryb3llZDxSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI+OwogICAgIFJlbW90ZUluc3BlY3Rv
clNlcnZlcigpIHsgU29ja2V0Ojppbml0KCk7IH0KIAotICAgIGJvb2wgZGlkQWNjZXB0KENvbm5l
Y3Rpb25JRCBhY2NlcHRlZElELCBDb25uZWN0aW9uSUQgbGlzdGVuZXJJRCwgU29ja2V0OjpEb21h
aW4pIGZpbmFsOwotICAgIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbklEKSBmaW5hbCB7IH0KKyAg
ICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGRvQWNjZXB0KFJlbW90ZUluc3BlY3RvclNvY2tldEVu
ZHBvaW50JiwgUGxhdGZvcm1Tb2NrZXRUeXBlKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3NlKFJl
bW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklEKSBmaW5hbCB7IH07CiAK
ICAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IG1fc2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29j
a2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggYTliOGYxNmM1MDhhLi5kMmVkNzU4
OWE3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCkBA
IC02Myw3ICs2Myw3IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpjb25uZWN0KENvbm5lY3Rpb25J
RCBpZCkKICAgICBzdGFydCgpOwogfQogCi12b2lkIFJlbW90ZUluc3BlY3Rvcjo6ZGlkQ2xvc2Uo
Q29ubmVjdGlvbklEKQordm9pZCBSZW1vdGVJbnNwZWN0b3I6OmRpZENsb3NlKFJlbW90ZUluc3Bl
Y3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklEKQogewogICAgIEFTU0VSVChpc0Nvbm5l
Y3RlZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5oCmluZGV4
IGRhMzIzMjkzNTM1Yy4uYWQ4Y2ZiMzk1ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclNvY2tldC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoUkVNT1RFX0lO
U1BFQ1RPUikKIAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8YXJyYXk+
CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAt
NjQsMjAgKzY1LDIwIEBAIGVudW0gY2xhc3MgRG9tYWluIHsKIAogdm9pZCBpbml0KCk7CiAKLU9w
dGlvbmFsPFBsYXRmb3JtU29ja2V0VHlwZT4gY29ubmVjdChjb25zdCBjaGFyKiBzZXJ2ZXJBZGRy
ZXNzLCB1aW50MTZfdCBzZXJ2ZXJQb3J0KTsKLU9wdGlvbmFsPFBsYXRmb3JtU29ja2V0VHlwZT4g
bGlzdGVuKGNvbnN0IGNoYXIqIGFkZHJlc3MsIHVpbnQxNl90IHBvcnQpOwotT3B0aW9uYWw8UGxh
dGZvcm1Tb2NrZXRUeXBlPiBhY2NlcHQoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKLU9wdGlvbmFsPHN0
ZDo6YXJyYXk8UGxhdGZvcm1Tb2NrZXRUeXBlLCAyPj4gY3JlYXRlUGFpcigpOworSlNfRVhQT1JU
X1BSSVZBVEUgT3B0aW9uYWw8UGxhdGZvcm1Tb2NrZXRUeXBlPiBjb25uZWN0KGNvbnN0IGNoYXIq
IHNlcnZlckFkZHJlc3MsIHVpbnQxNl90IHNlcnZlclBvcnQpOworSlNfRVhQT1JUX1BSSVZBVEUg
T3B0aW9uYWw8UGxhdGZvcm1Tb2NrZXRUeXBlPiBsaXN0ZW4oY29uc3QgY2hhciogYWRkcmVzcywg
dWludDE2X3QgcG9ydCk7CitKU19FWFBPUlRfUFJJVkFURSBPcHRpb25hbDxQbGF0Zm9ybVNvY2tl
dFR5cGU+IGFjY2VwdChQbGF0Zm9ybVNvY2tldFR5cGUpOworSlNfRVhQT1JUX1BSSVZBVEUgT3B0
aW9uYWw8c3RkOjphcnJheTxQbGF0Zm9ybVNvY2tldFR5cGUsIDI+PiBjcmVhdGVQYWlyKCk7CiAK
LWJvb2wgc2V0dXAoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKLWJvb2wgaXNWYWxpZChQbGF0Zm9ybVNv
Y2tldFR5cGUpOwotYm9vbCBpc0xpc3RlbmluZyhQbGF0Zm9ybVNvY2tldFR5cGUpOwotT3B0aW9u
YWw8dWludDE2X3Q+IGdldFBvcnQoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKK0pTX0VYUE9SVF9QUklW
QVRFIGJvb2wgc2V0dXAoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJv
b2wgaXNWYWxpZChQbGF0Zm9ybVNvY2tldFR5cGUpOworSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBp
c0xpc3RlbmluZyhQbGF0Zm9ybVNvY2tldFR5cGUpOworSlNfRVhQT1JUX1BSSVZBVEUgT3B0aW9u
YWw8dWludDE2X3Q+IGdldFBvcnQoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKIAotT3B0aW9uYWw8c2l6
ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlwZSwgdm9pZCogYnVmZmVyLCBpbnQgYnVmZmVyU2l6
ZSk7Ci1PcHRpb25hbDxzaXplX3Q+IHdyaXRlKFBsYXRmb3JtU29ja2V0VHlwZSwgY29uc3Qgdm9p
ZCogZGF0YSwgaW50IHNpemUpOworSlNfRVhQT1JUX1BSSVZBVEUgT3B0aW9uYWw8c2l6ZV90PiBy
ZWFkKFBsYXRmb3JtU29ja2V0VHlwZSwgdm9pZCogYnVmZmVyLCBpbnQgYnVmZmVyU2l6ZSk7CitK
U19FWFBPUlRfUFJJVkFURSBPcHRpb25hbDxzaXplX3Q+IHdyaXRlKFBsYXRmb3JtU29ja2V0VHlw
ZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IHNpemUpOwogCi12b2lkIGNsb3NlKFBsYXRmb3JtU29j
a2V0VHlwZSYpOworSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBjbG9zZShQbGF0Zm9ybVNvY2tldFR5
cGUmKTsKIAogUG9sbGluZ0Rlc2NyaXB0b3IgcHJlcGFyZVBvbGxpbmcoUGxhdGZvcm1Tb2NrZXRU
eXBlKTsKIGJvb2wgcG9sbChWZWN0b3I8UG9sbGluZ0Rlc2NyaXB0b3I+JiwgaW50IHRpbWVvdXQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29j
a2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5jcHAKaW5kZXggYTkxMDViOTY5ZTVkLi41NjJjMjU0NjAxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmNwcApAQCAtNDcsNiAr
NDcsOCBAQCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYgUmVtb3RlSW5zcGVjdG9yU29j
a2V0RW5kcG9pbnQ6OnNpbmdsZXRvbigpCiAKIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50
OjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCgpCiB7CisgICAgU29ja2V0Ojppbml0KCk7
CisKICAgICBpZiAoYXV0byBzb2NrZXRzID0gU29ja2V0OjpjcmVhdGVQYWlyKCkpIHsKICAgICAg
ICAgbV93YWtldXBTZW5kU29ja2V0ID0gc29ja2V0cy0+YXQoMCk7CiAgICAgICAgIG1fd2FrZXVw
UmVjZWl2ZVNvY2tldCA9IHNvY2tldHMtPmF0KDEpOwpAQCAtNjcsNyArNjksNyBAQCBSZW1vdGVJ
bnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6flJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50KCkK
IAogICAgIFNvY2tldDo6Y2xvc2UobV93YWtldXBTZW5kU29ja2V0KTsKICAgICBTb2NrZXQ6OmNs
b3NlKG1fd2FrZXVwUmVjZWl2ZVNvY2tldCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjb25uZWN0
aW9uIDogbV9jb25uZWN0aW9ucy52YWx1ZXMoKSkKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbm5l
Y3Rpb24gOiBtX2NsaWVudHMudmFsdWVzKCkpCiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVj
dGlvbi0+c29ja2V0KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gOiBtX2xpc3Rl
bmVycy52YWx1ZXMoKSkKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2NrZXQp
OwpAQCAtODYsMTAgKzg4LDEwIEBAIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OmNvbm5lY3RJbmV0KGNvbnN0IGNoYXIqIHNlCiAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludDo6bGlzdGVuSW5ldChjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZf
dCBwb3J0LCBMaXN0ZW5lciYgbGlzdGVuZXIsIENsaWVudCYgY2xpZW50KQorT3B0aW9uYWw8Q29u
bmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6bGlzdGVuSW5ldChjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0LCBMaXN0ZW5lciYgbGlzdGVuZXIpCiB7CiAg
ICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjpsaXN0ZW4oYWRkcmVzcywgcG9ydCkpCi0gICAg
ICAgIHJldHVybiBjcmVhdGVMaXN0ZW5lcigqc29ja2V0LCBsaXN0ZW5lciwgY2xpZW50KTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZUxpc3RlbmVyKCpzb2NrZXQsIGxpc3RlbmVyKTsKIAogICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiB9CkBAIC0xMjEsNyArMTIzLDcgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6d29ya2VyVGhyZWFkKCkKICAgICAgICAgVmVjdG9yPENvbm5l
Y3Rpb25JRD4gaWRzOwogICAgICAgICB7CiAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9j
b25uZWN0aW9uc0xvY2spOwotICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb25uZWN0aW9u
IDogbV9jb25uZWN0aW9ucykgeworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb25uZWN0
aW9uIDogbV9jbGllbnRzKSB7CiAgICAgICAgICAgICAgICAgcG9sbGZkcy5hcHBlbmQoY29ubmVj
dGlvbi52YWx1ZS0+cG9sbCk7CiAgICAgICAgICAgICAgICAgaWRzLmFwcGVuZChjb25uZWN0aW9u
LmtleSk7CiAgICAgICAgICAgICB9CkBAIC0xNjYsMzUgKzE2OCw1MyBAQCBDb25uZWN0aW9uSUQg
UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmdlbmVyYXRlQ29ubmVjdGlvbklEKCkKICAg
ICBDb25uZWN0aW9uSUQgaWQ7CiAgICAgZG8gewogICAgICAgICBpZCA9IGNyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyKCk7Ci0gICAgfSB3aGlsZSAoIWlkIHx8IG1fY29ubmVjdGlvbnMuY29u
dGFpbnMoaWQpIHx8IG1fbGlzdGVuZXJzLmNvbnRhaW5zKGlkKSk7CisgICAgfSB3aGlsZSAoIWlk
IHx8IG1fY2xpZW50cy5jb250YWlucyhpZCkgfHwgbV9saXN0ZW5lcnMuY29udGFpbnMoaWQpKTsK
IAogICAgIHJldHVybiBpZDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjpDb25uZWN0aW9uPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6
bWFrZUNvbm5lY3Rpb24oUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgQ2xpZW50JiBjbGllbnQp
CitPcHRpb25hbDxDb25uZWN0aW9uSUQ+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50Ojpj
cmVhdGVDbGllbnQoUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgQ2xpZW50JiBjbGllbnQpCiB7
Ci0gICAgQVNTRVJUKG1fY29ubmVjdGlvbnNMb2NrLmlzTG9ja2VkKCkpOworICAgIEFTU0VSVChT
b2NrZXQ6OmlzVmFsaWQoc29ja2V0KSk7CiAKLSAgICBTb2NrZXQ6OnNldHVwKHNvY2tldCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2NrKTsKKyAgICBhdXRvIGlkID0gZ2Vu
ZXJhdGVDb25uZWN0aW9uSUQoKTsKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPENs
aWVudENvbm5lY3Rpb24+KGlkLCBzb2NrZXQsIGNsaWVudCk7CisgICAgbV9jbGllbnRzLmFkZChp
ZCwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgd2FrZXVwV29ya2VyVGhyZWFkKCk7CiAKLSAg
ICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPENvbm5lY3Rpb24+KGNsaWVudCk7CisgICAg
cmV0dXJuIGlkOworfQogCi0gICAgY29ubmVjdGlvbi0+aWQgPSBnZW5lcmF0ZUNvbm5lY3Rpb25J
RCgpOwotICAgIGNvbm5lY3Rpb24tPnBvbGwgPSBTb2NrZXQ6OnByZXBhcmVQb2xsaW5nKHNvY2tl
dCk7Ci0gICAgY29ubmVjdGlvbi0+c29ja2V0ID0gc29ja2V0Owordm9pZCBSZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCit7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2NrKTsKIAotICAgIHJldHVybiBjb25uZWN0aW9u
OworICAgIGlmIChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9saXN0ZW5lcnMuZ2V0KGlkKSkg
eworICAgICAgICBtX2xpc3RlbmVycy5yZW1vdmUoaWQpOworICAgICAgICBTb2NrZXQ6OmNsb3Nl
KGNvbm5lY3Rpb24tPnNvY2tldCk7CisgICAgICAgIGxvY2sudW5sb2NrRWFybHkoKTsKKyAgICAg
ICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKKyAgICB9IGVsc2Ug
aWYgKGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgeworICAgICAg
ICBtX2NsaWVudHMucmVtb3ZlKGlkKTsKKyAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9u
LT5zb2NrZXQpOworICAgICAgICBsb2NrLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGNvbm5lY3Rp
b24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywgaWQpOworICAgIH0gZWxzZQorICAgICAgICBMT0df
RVJST1IoIkVycm9yOiBDYW5ub3QgZGlzY29ubmVjdDogSW52YWxpZCBpZCIpOwogfQogCi1PcHRp
b25hbDxDb25uZWN0aW9uSUQ+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVD
bGllbnQoUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgQ2xpZW50JiBjbGllbnQpCitPcHRpb25h
bDxDb25uZWN0aW9uSUQ+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVMaXN0
ZW5lcihQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0LCBMaXN0ZW5lciYgbGlzdGVuZXIpCiB7Ci0g
ICAgaWYgKCFTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSkKKyAgICBBU1NFUlQoU29ja2V0Ojppc1Zh
bGlkKHNvY2tldCkpOworCisgICAgaWYgKCFTb2NrZXQ6OnNldHVwKHNvY2tldCkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBMb2NrSG9sZGVyIGxvY2sobV9jb25uZWN0aW9u
c0xvY2spOwotICAgIGF1dG8gY29ubmVjdGlvbiA9IG1ha2VDb25uZWN0aW9uKHNvY2tldCwgY2xp
ZW50KTsKLSAgICBhdXRvIGlkID0gY29ubmVjdGlvbi0+aWQ7Ci0gICAgbV9jb25uZWN0aW9ucy5h
ZGQoaWQsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgIGF1dG8gaWQgPSBnZW5lcmF0ZUNvbm5l
Y3Rpb25JRCgpOworICAgIGF1dG8gY29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8TGlzdGVuZXJDb25u
ZWN0aW9uPihpZCwgc29ja2V0LCBsaXN0ZW5lcik7CisgICAgbV9saXN0ZW5lcnMuYWRkKGlkLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAgICB3YWtldXBXb3JrZXJUaHJlYWQoKTsKIAogICAgIHJl
dHVybiBpZDsKQEAgLTIwMiwxNyArMjIyLDE0IEBAIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVt
b3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZUNsaWVudChQbGF0Zm9ybVNvY2tlCiAK
IE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNy
ZWF0ZUxpc3RlbmVyKFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIExpc3RlbmVyJiBsaXN0ZW5l
ciwgQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgaWYgKCFTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIExvY2tIb2xkZXIgbG9jayhtX2Nv
bm5lY3Rpb25zTG9jayk7CisgICAgQVNTRVJUKFNvY2tldDo6aXNWYWxpZChzb2NrZXQpKTsKIAog
ICAgIGlmICghU29ja2V0OjpzZXR1cChzb2NrZXQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgYXV0byBjb25uZWN0aW9uID0gbWFrZUNvbm5lY3Rpb24oc29ja2V0LCBjbGll
bnQpOwotICAgIGF1dG8gaWQgPSBjb25uZWN0aW9uLT5pZDsKLSAgICBjb25uZWN0aW9uLT5saXN0
ZW5lciA9ICZsaXN0ZW5lcjsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9jb25uZWN0aW9uc0xvY2sp
OworICAgIGF1dG8gaWQgPSBnZW5lcmF0ZUNvbm5lY3Rpb25JRCgpOworICAgIGF1dG8gY29ubmVj
dGlvbiA9IG1ha2VVbmlxdWU8TGlzdGVuZXJDb25uZWN0aW9uPihpZCwgc29ja2V0LCBsaXN0ZW5l
cik7CiAgICAgbV9saXN0ZW5lcnMuYWRkKGlkLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAgICB3
YWtldXBXb3JrZXJUaHJlYWQoKTsKIApAQCAtMjIyLDcgKzIzOSw3IEBAIE9wdGlvbmFsPENvbm5l
Y3Rpb25JRD4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZUxpc3RlbmVyKFBs
YXRmb3JtU29jCiB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjppbnZhbGlkYXRl
Q2xpZW50KENsaWVudCYgY2xpZW50KQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rp
b25zTG9jayk7Ci0gICAgbV9jb25uZWN0aW9ucy5yZW1vdmVJZihbJmNsaWVudF0oYXV0byYga2V5
VmFsdWUpIHsKKyAgICBtX2NsaWVudHMucmVtb3ZlSWYoWyZjbGllbnRdKGF1dG8mIGtleVZhbHVl
KSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBrZXlWYWx1ZS52YWx1ZTsKIAog
ICAgICAgICBpZiAoJmNvbm5lY3Rpb24tPmNsaWVudCAhPSAmY2xpZW50KQpAQCAtMjQwLDcgKzI1
Nyw3IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmludmFsaWRhdGVMaXN0
ZW5lcihMaXN0ZW5lciYgbGlzdGVuZXIpCiAgICAgbV9saXN0ZW5lcnMucmVtb3ZlSWYoWyZsaXN0
ZW5lcl0oYXV0byYga2V5VmFsdWUpIHsKICAgICAgICAgY29uc3QgYXV0byYgY29ubmVjdGlvbiA9
IGtleVZhbHVlLnZhbHVlOwogCi0gICAgICAgIGlmIChjb25uZWN0aW9uLT5saXN0ZW5lciA9PSAm
bGlzdGVuZXIpIHsKKyAgICAgICAgaWYgKCZjb25uZWN0aW9uLT5saXN0ZW5lciA9PSAmbGlzdGVu
ZXIpIHsKICAgICAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlvbi0+c29ja2V0KTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0yNTQsNyArMjcxLDcgQEAgT3B0
aW9uYWw8dWludDE2X3Q+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpnZXRQb3J0KENv
bm5lY3Rpb25JRCBpZCkgY29uc3QKICAgICBMb2NrSG9sZGVyIGxvY2sobV9jb25uZWN0aW9uc0xv
Y2spOwogICAgIGlmIChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9saXN0ZW5lcnMuZ2V0KGlk
KSkKICAgICAgICAgcmV0dXJuIFNvY2tldDo6Z2V0UG9ydChjb25uZWN0aW9uLT5zb2NrZXQpOwot
ICAgIGlmIChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5nZXQoaWQpKQor
ICAgIGlmIChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9jbGllbnRzLmdldChpZCkpCiAgICAg
ICAgIHJldHVybiBTb2NrZXQ6OmdldFBvcnQoY29ubmVjdGlvbi0+c29ja2V0KTsKIAogICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CkBAIC0yNjMsMjggKzI4MCwyOSBAQCBPcHRpb25hbDx1aW50MTZf
dD4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmdldFBvcnQoQ29ubmVjdGlvbklEIGlk
KSBjb25zdAogdm9pZCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6cmVjdklmRW5hYmxl
ZChDb25uZWN0aW9uSUQgaWQpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNM
b2NrKTsKLSAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0
KGlkKSkgeworICAgIGlmIChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9jbGllbnRzLmdldChp
ZCkpIHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHJlY3ZCdWZmZXIoU29ja2V0OjpCdWZmZXJT
aXplKTsKICAgICAgICAgaWYgKGF1dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlv
bi0+c29ja2V0LCByZWN2QnVmZmVyLmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAg
ICAgICAgICBpZiAoKnJlYWRTaXplID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIu
c2hyaW5rKCpyZWFkU2l6ZSk7Ci0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xpZW50LmRp
ZFJlY2VpdmUoaWQsIFdURk1vdmUocmVjdkJ1ZmZlcikpOworICAgICAgICAgICAgICAgIGxvY2su
dW5sb2NrRWFybHkoKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkUmVj
ZWl2ZSgqdGhpcywgaWQsIFdURk1vdmUocmVjdkJ1ZmZlcikpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIFNvY2tldDo6Y2xvc2Uo
Y29ubmVjdGlvbi0+c29ja2V0KTsKLSAgICAgICAgbV9jb25uZWN0aW9ucy5yZW1vdmUoaWQpOwor
ICAgICAgICBtX2NsaWVudHMucmVtb3ZlKGlkKTsKIAogICAgICAgICBsb2NrLnVubG9ja0Vhcmx5
KCk7Ci0gICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZShpZCk7CisgICAgICAgIGNv
bm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywgaWQpOwogICAgIH0KIH0KIAogdm9pZCBS
ZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6c2VuZElmRW5hYmxlZChDb25uZWN0aW9uSUQg
aWQpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2NrKTsKLSAgICBpZiAo
Y29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0KGlkKSkgeworICAgIGlm
IChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9jbGllbnRzLmdldChpZCkpIHsKICAgICAgICAg
U29ja2V0OjpjbGVhcldhaXRpbmdXcml0YWJsZShjb25uZWN0aW9uLT5wb2xsKTsKIAogICAgICAg
ICBhdXRvJiBidWZmZXIgPSBjb25uZWN0aW9uLT5zZW5kQnVmZmVyOwpAQCAtMzA5LDcgKzMyNyw3
IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnNlbmRJZkVuYWJsZWQoQ29u
bmVjdGlvbklEIGlkKQogdm9pZCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6c2VuZChD
b25uZWN0aW9uSUQgaWQsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQogewogICAg
IExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7Ci0gICAgaWYgKGNvbnN0IGF1dG8m
IGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLmdldChpZCkpIHsKKyAgICBpZiAoY29uc3QgYXV0
byYgY29ubmVjdGlvbiA9IG1fY2xpZW50cy5nZXQoaWQpKSB7CiAgICAgICAgIHNpemVfdCBvZmZz
ZXQgPSAwOwogICAgICAgICBpZiAoY29ubmVjdGlvbi0+c2VuZEJ1ZmZlci5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIC8vIFRyeSB0byBjYWxsIHNlbmQoKSBkaXJlY3RseSBpZiBidWZmZXIgaXMg
ZW1wdHkuCkBAIC0zMzksMTMgKzM1Nyw4IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5k
cG9pbnQ6OmFjY2VwdEluZXRTb2NrZXRJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBpZiAoYXV0byBzb2NrZXQgPSBTb2NrZXQ6OmFjY2VwdChjb25uZWN0aW9uLT5zb2NrZXQpKSB7
CiAgICAgICAgICAgICAvLyBOZWVkIHRvIHVubG9jayBiZWZvcmUgY2FsbGluZyBjcmVhdGVDbGll
bnQgYXMgaXQgYWxzbyBhdHRlbXB0cyB0byBsb2NrLgogICAgICAgICAgICAgbG9jay51bmxvY2tF
YXJseSgpOwotICAgICAgICAgICAgaWYgKGF1dG8gbmV3SUQgPSBjcmVhdGVDbGllbnQoKnNvY2tl
dCwgY29ubmVjdGlvbi0+Y2xpZW50KSkgewotICAgICAgICAgICAgICAgIGlmIChjb25uZWN0aW9u
LT5saXN0ZW5lci0+ZGlkQWNjZXB0KG5ld0lELnZhbHVlKCksIGNvbm5lY3Rpb24tPmlkLCBTb2Nr
ZXQ6OkRvbWFpbjo6TmV0d29yaykpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICAgICAgICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlKGlkKTsKLSAgICAgICAgICAgIH0KLQor
ICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2Nr
ZXQudmFsdWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgU29ja2V0
OjpjbG9zZSgqc29ja2V0KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29j
a2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggM2U0OWE1NWU4YzNhLi45
ZjNkNzJlOTYwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCiAKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JTb2NrZXQuaCIKLQogI2luY2x1ZGUg
PHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgpAQCAtMzgsMTkgKzM3LDIxIEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCi1jbGFzcyBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCB7CitjbGFzcyBKU19FWFBP
UlRfUFJJVkFURSBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgY2xhc3MgQ2xpZW50IHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlKENvbm5lY3Rpb25JRCwgVmVjdG9yPHVp
bnQ4X3Q+JiYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25J
RCkgPSAwOworICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmUoUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9u
SUQsIFZlY3Rvcjx1aW50OF90PiYmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25JRCkgPSAwOwogICAg
IH07CiAKICAgICBjbGFzcyBMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFs
IGJvb2wgZGlkQWNjZXB0KENvbm5lY3Rpb25JRCBhY2NlcHRlZElELCBDb25uZWN0aW9uSUQgbGlz
dGVuZXJJRCwgU29ja2V0OjpEb21haW4pID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENs
b3NlKENvbm5lY3Rpb25JRCkgPSAwOworICAgICAgICB2aXJ0dWFsIH5MaXN0ZW5lcigpIHsgfQor
ICAgICAgICB2aXJ0dWFsIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gZG9BY2NlcHQoUmVtb3RlSW5z
cGVjdG9yU29ja2V0RW5kcG9pbnQmLCBQbGF0Zm9ybVNvY2tldFR5cGUpID0gMDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGRpZENsb3NlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29u
bmVjdGlvbklEKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludCYgc2luZ2xldG9uKCk7CkBAIC01OSwzNSArNjAsNjEgQEAgcHVibGljOgogICAg
IH5SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCgpOwogCiAgICAgT3B0aW9uYWw8Q29ubmVj
dGlvbklEPiBjb25uZWN0SW5ldChjb25zdCBjaGFyKiBzZXJ2ZXJBZGRyLCB1aW50MTZfdCBzZXJ2
ZXJQb3J0LCBDbGllbnQmKTsKLSAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGxpc3RlbkluZXQo
Y29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9ydCwgTGlzdGVuZXImLCBDbGllbnQmKTsK
KyAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGxpc3RlbkluZXQoY29uc3QgY2hhciogYWRkcmVz
cywgdWludDE2X3QgcG9ydCwgTGlzdGVuZXImKTsKICAgICB2b2lkIGludmFsaWRhdGVDbGllbnQo
Q2xpZW50Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlTGlzdGVuZXIoTGlzdGVuZXImKTsKIAogICAg
IHZvaWQgc2VuZChDb25uZWN0aW9uSUQsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCk7Cisg
ICAgaW5saW5lIHZvaWQgc2VuZChDb25uZWN0aW9uSUQgY2lkLCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIGRhdGEpIHsgc2VuZChjaWQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7IH0KKyAgICBp
bmxpbmUgdm9pZCBzZW5kKENvbm5lY3Rpb25JRCBpZCwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90
IGxlbmd0aCkgeyBzZW5kKGlkLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRh
KSwgbGVuZ3RoKTsgfQogCiAgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBjcmVhdGVDbGllbnQo
UGxhdGZvcm1Tb2NrZXRUeXBlLCBDbGllbnQmKTsKICAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+
IGNyZWF0ZUxpc3RlbmVyKFBsYXRmb3JtU29ja2V0VHlwZSwgTGlzdGVuZXImLCBDbGllbnQmKTsK
IAogICAgIE9wdGlvbmFsPHVpbnQxNl90PiBnZXRQb3J0KENvbm5lY3Rpb25JRCkgY29uc3Q7CiAK
KyAgICB2b2lkIGRpc2Nvbm5lY3QoQ29ubmVjdGlvbklEKTsKKwogcHJvdGVjdGVkOgotICAgIHN0
cnVjdCBDb25uZWN0aW9uIHsKKyAgICBzdHJ1Y3QgQmFzZUNvbm5lY3Rpb24gewogICAgICAgICBX
VEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7Ci0gICAgICAgIGV4cGxpY2l0IENvbm5lY3Rp
b24oQ2xpZW50JiBjbGllbnQpCi0gICAgICAgICAgICA6IGNsaWVudChjbGllbnQpCisKKyAgICAg
ICAgQmFzZUNvbm5lY3Rpb24oQ29ubmVjdGlvbklEIGlkLCBQbGF0Zm9ybVNvY2tldFR5cGUgc29j
a2V0KQorICAgICAgICAgICAgOiBpZCB7IGlkIH0KKyAgICAgICAgICAgICwgc29ja2V0IHsgc29j
a2V0IH0KKyAgICAgICAgICAgICwgcG9sbCB7IFNvY2tldDo6cHJlcGFyZVBvbGxpbmcoc29ja2V0
KSB9CiAgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChTb2NrZXQ6OmlzVmFsaWQoc29ja2V0
KSk7CiAgICAgICAgIH0KIAogICAgICAgICBDb25uZWN0aW9uSUQgaWQ7Ci0gICAgICAgIFZlY3Rv
cjx1aW50OF90PiBzZW5kQnVmZmVyOwotICAgICAgICBQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0
IHsgSU5WQUxJRF9TT0NLRVRfVkFMVUUgfTsKKyAgICAgICAgUGxhdGZvcm1Tb2NrZXRUeXBlIHNv
Y2tldDsKICAgICAgICAgUG9sbGluZ0Rlc2NyaXB0b3IgcG9sbDsKKyAgICB9OworCisgICAgc3Ry
dWN0IENsaWVudENvbm5lY3Rpb24gOiBwdWJsaWMgQmFzZUNvbm5lY3Rpb24geworICAgICAgICBD
bGllbnRDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tl
dCwgQ2xpZW50JiBjbGllbnQpCisgICAgICAgICAgICA6IEJhc2VDb25uZWN0aW9uKGlkLCBzb2Nr
ZXQpCisgICAgICAgICAgICAsIGNsaWVudCB7IGNsaWVudCB9CisgICAgICAgIHsKKyAgICAgICAg
fQorCiAgICAgICAgIENsaWVudCYgY2xpZW50OwotICAgICAgICBMaXN0ZW5lciogbGlzdGVuZXIg
eyB9OworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VuZEJ1ZmZlcjsKKyAgICB9OworCisgICAg
c3RydWN0IExpc3RlbmVyQ29ubmVjdGlvbiA6IHB1YmxpYyBCYXNlQ29ubmVjdGlvbiB7CisgICAg
ICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQgaWQsIFBsYXRmb3JtU29ja2V0VHlw
ZSBzb2NrZXQsIExpc3RlbmVyJiBsaXN0ZW5lcikKKyAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rp
b24oaWQsIHNvY2tldCkKKyAgICAgICAgICAgICwgbGlzdGVuZXIgeyBsaXN0ZW5lciB9CisgICAg
ICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIExpc3RlbmVyJiBsaXN0ZW5lcjsKICAgICB9Owog
CiAgICAgQ29ubmVjdGlvbklEIGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPENvbm5lY3Rpb24+IG1ha2VDb25uZWN0aW9uKFBsYXRmb3JtU29ja2V0VHlwZSwgQ2xp
ZW50Jik7CisgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBjcmVhdGVMaXN0ZW5lcihQbGF0Zm9y
bVNvY2tldFR5cGUsIExpc3RlbmVyJik7CiAKICAgICB2b2lkIHJlY3ZJZkVuYWJsZWQoQ29ubmVj
dGlvbklEKTsKICAgICB2b2lkIHNlbmRJZkVuYWJsZWQoQ29ubmVjdGlvbklEKTsKQEAgLTk3LDgg
KzEyNCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTGlzdGVuaW5nKENvbm5lY3Rpb25JRCk7
CiAKICAgICBtdXRhYmxlIExvY2sgbV9jb25uZWN0aW9uc0xvY2s7Ci0gICAgSGFzaE1hcDxDb25u
ZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPj4gbV9jb25uZWN0aW9uczsKLSAg
ICBIYXNoTWFwPENvbm5lY3Rpb25JRCwgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+PiBtX2xp
c3RlbmVyczsKKyAgICBIYXNoTWFwPENvbm5lY3Rpb25JRCwgc3RkOjp1bmlxdWVfcHRyPENsaWVu
dENvbm5lY3Rpb24+PiBtX2NsaWVudHM7CisgICAgSGFzaE1hcDxDb25uZWN0aW9uSUQsIHN0ZDo6
dW5pcXVlX3B0cjxMaXN0ZW5lckNvbm5lY3Rpb24+PiBtX2xpc3RlbmVyczsKIAogICAgIFBsYXRm
b3JtU29ja2V0VHlwZSBtX3dha2V1cFNlbmRTb2NrZXQgeyBJTlZBTElEX1NPQ0tFVF9WQUxVRSB9
OwogICAgIFBsYXRmb3JtU29ja2V0VHlwZSBtX3dha2V1cFJlY2VpdmVTb2NrZXQgeyBJTlZBTElE
X1NPQ0tFVF9WQUxVRSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNGNlNGFmYTI5MGIuLmQ5Mzg4ZDdiNmE4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wOS0xOSAgQmFzdWtlIFN1enVraSAgPGJh
c3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXVtQbGF5U3RhdGlvbl0g
U3VwcG9ydCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIGxpc3RlbmVyIGNsaWVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjczMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvbGxvd3MgdGhlIGNoYW5n
ZSBvZiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Q2xpZW50IGludGVyZmFjZSBjaGFu
Z2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUncyBubyBiZWhhaXZpb3Ig
Y2hhbmdlLgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50
OjpkaWRDbG9zZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50Lmg6CisKIDIwMjAtMDktMTggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NjYzNCk6IGZhc3Qvc2VsZWN0b3Jz
L3RleHQtZmllbGQtc2VsZWN0aW9uLXN0cm9rZS1jb2xvci5odG1sIGFuZCBmYXN0L3NlbGVjdG9y
cy90ZXh0LWZpZWxkLXNlbGVjdGlvbi13aW5kb3ctaW5hY3RpdmUtc3Ryb2tlLWNvbG9yLmh0bWwg
YXJlIGZsYWt5IGZhaWx1cmVzIHdpdGggcGl4ZWwgbm9pc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yQ2xpZW50LmNwcAppbmRleCA2NzQ3OWNlZjIyYWYuLjAyZGFjMWY1NjBmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVt
b3RlSW5zcGVjdG9yQ2xpZW50Ojpjb25uZWN0aW9uQ2xvc2VkKCkKICAgICBtX29ic2VydmVyLnRh
cmdldExpc3RDaGFuZ2VkKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6
OmRpZENsb3NlKENvbm5lY3Rpb25JRCkKK3ZvaWQgUmVtb3RlSW5zcGVjdG9yQ2xpZW50OjpkaWRD
bG9zZShJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlv
bklEKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdIHsKICAgICAgICAgY29ubmVjdGlv
bkNsb3NlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOWY1MWQ2M2Rl
YTA2Li43OWVhYzFhYmY5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaApAQCAt
ODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IEV2ZW50Jik7CiAgICAgdm9pZCBzZXRCYWNrZW5kQ29tbWFuZHMoY29uc3QgRXZlbnQmKTsK
IAotICAgIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbklEKSBmaW5hbDsKKyAgICB2b2lkIGRpZENs
b3NlKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9u
SUQpIGZpbmFsOwogICAgIEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4mIGRpc3BhdGNoTWFw
KCkgZmluYWw7CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcm
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409320</attachid>
            <date>2020-09-21 14:17:45 -0700</date>
            <delta_ts>2020-09-21 14:45:30 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>bug-216733.diff</filename>
            <type>text/plain</type>
            <size>26958</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDEwNGIyZDIxNDM5Mi4uYjMyMDk1NzYyMDhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0wOS0xOSAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJv
XVtQbGF5U3RhdGlvbl0gU3VwcG9ydCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIGxpc3RlbmVyIGNs
aWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NjczMworCisgICAgICAgIFJldmlld2VkIGJ5IERvbiBPbG1zdGVhZC4KKworICAgICAgICBDdXJy
ZW50bHkgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQgc3VwcG9ydCBvbmUgY2xpZW50IGlu
c3RhbmNlIGZvciBhbGwKKyAgICAgICAgbGlzdGVuZXJzLiBUaGlzIHBhdGNoIGFsbG93cyBsaXN0
ZW5lcnMgdG8gY3JlYXRlIGl0cyBvd24gbGlzdGVuZXIgY2xpZW50IG9uCisgICAgICAgIGFjY2Vw
dCB0aW1pbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJs
ZVRhcmdldC5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmg6
CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVj
dGlvbkNsaWVudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvckNvbm5l
Y3Rpb25DbGllbnQ6OmRpZFJlY2VpdmUpOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvc29j
a2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuY3BwOgorICAgICAgICAoSW5z
cGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKEluc3BlY3Rv
cjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpkb0FjY2VwdCk6CisgICAgICAgICogaW5zcGVjdG9y
L3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcDoKKyAgICAgICAgKElu
c3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpkaWRDbG9zZSk6CisgICAgICAgICogaW5zcGVjdG9y
L3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwOgorICAg
ICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6UmVtb3RlSW5z
cGVjdG9yU29ja2V0RW5kcG9pbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludDo6flJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50KToKKyAgICAg
ICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Omxpc3RlbkluZXQp
OgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6d29y
a2VyVGhyZWFkKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5k
cG9pbnQ6OmdlbmVyYXRlQ29ubmVjdGlvbklEKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZUNsaWVudCk6CisgICAgICAgIChJbnNwZWN0
b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpkaXNjb25uZWN0KToKKyAgICAgICAg
KEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZUxpc3RlbmVy
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Omlu
dmFsaWRhdGVDbGllbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludDo6aW52YWxpZGF0ZUxpc3RlbmVyKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVt
b3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmdldFBvcnQgY29uc3QpOgorICAgICAgICAoSW5z
cGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6cmVjdklmRW5hYmxlZCk6Cisg
ICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpzZW5kSWZF
bmFibGVkKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9p
bnQ6OnNlbmQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludDo6YWNjZXB0SW5ldFNvY2tldElmRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9yL3Jl
bW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaDoKKwogMjAyMC0wOS0x
OCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcg
c2hvdWxkIGVuc3VyZSB0aGVyZSBhcmUgUGhhbnRvbUxvY2FscyBmb3IgdGhlIHRha2VuIGJsb2Nr
IG9mIG9wX2puZXFfcHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCmluZGV4IDIw
ZDk3NGQ3NTg2NC4uMGU3YjViMjk0N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJn
ZXQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAK
KyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaAppbmRleCA0
MjQ1MWEwNWU4YzkuLjRiMjU5MTdlZGViNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKQEAgLTc5LDcgKzc5
LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgUmVtb3RlSW5zcGVjdG9yIGZpbmFsCiAjZW5k
aWYKIHsKIHB1YmxpYzoKLSAgICBjbGFzcyBDbGllbnQgeworICAgIGNsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIENsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBzdHJ1Y3QgQ2FwYWJpbGl0aWVz
IHsKICAgICAgICAgICAgIGJvb2wgcmVtb3RlQXV0b21hdGlvbkFsbG93ZWQgOiAxOwpAQCAtMjI0
LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9T
RVJWRVIpCiAgICAgSGFzaE1hcDxTdHJpbmcsIENhbGxIYW5kbGVyPiYgZGlzcGF0Y2hNYXAoKSBm
aW5hbDsKLSAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgZmluYWw7CisgICAgdm9pZCBk
aWRDbG9zZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25JRCkgZmlu
YWw7CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGll
bnQuY3BwCmluZGV4IDg5NjVkYTIxZGE4MS4uYWViN2ZlYjhlMTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
Q29ubmVjdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuY3BwCkBAIC02
Miw3ICs2Miw3IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudDo6c2VuZChD
b25uZWN0aW9uSUQgaWQsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsCiAgICAgZW5kcG9pbnQuc2VuZChp
ZCwgbWVzc2FnZS5kYXRhKCksIG1lc3NhZ2Uuc2l6ZSgpKTsKIH0KIAotdm9pZCBSZW1vdGVJbnNw
ZWN0b3JDb25uZWN0aW9uQ2xpZW50OjpkaWRSZWNlaXZlKENvbm5lY3Rpb25JRCBjbGllbnRJRCwg
VmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKK3ZvaWQgUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNs
aWVudDo6ZGlkUmVjZWl2ZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rp
b25JRCBjbGllbnRJRCwgVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKIHsKICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JDb25uZWN0aW9uQ2xpZW50LmgKaW5kZXggNGJkMTU4ZDMxNzExLi4zNWE3ODBjZDA3NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9S
ZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGll
bnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklE
PiBjcmVhdGVDbGllbnQoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKICAgICB2b2lkIHNlbmQoQ29ubmVj
dGlvbklELCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QpOwogCi0gICAgdm9pZCBkaWRSZWNl
aXZlKENvbm5lY3Rpb25JRCwgVmVjdG9yPHVpbnQ4X3Q+JiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkUmVjZWl2ZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25JRCwg
VmVjdG9yPHVpbnQ4X3Q+JiYpIG92ZXJyaWRlOwogCiAgICAgc3RydWN0IEV2ZW50IHsKICAgICAg
ICAgU3RyaW5nIG1ldGhvZE5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
ZXJ2ZXIuY3BwCmluZGV4IGY5NDg1YmZhMjZiMS4uZjJiNDgwZjkwYWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90
ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBib29s
IFJlbW90ZUluc3BlY3RvclNlcnZlcjo6c3RhcnQoY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2
X3QgcG9ydCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byYgZW5kcG9pbnQgPSBJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpzaW5nbGV0b24oKTsKLSAg
ICBtX3NlcnZlciA9IGVuZHBvaW50Lmxpc3RlbkluZXQoYWRkcmVzcywgcG9ydCwgKnRoaXMsIFJl
bW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkpOworICAgIG1fc2VydmVyID0gZW5kcG9pbnQubGlz
dGVuSW5ldChhZGRyZXNzLCBwb3J0LCAqdGhpcyk7CiAgICAgcmV0dXJuIGlzUnVubmluZygpOwog
fQogCkBAIC02OCwxOCArNjgsMjIgQEAgT3B0aW9uYWw8dWludDE2X3Q+IFJlbW90ZUluc3BlY3Rv
clNlcnZlcjo6Z2V0UG9ydCgpIGNvbnN0CiAgICAgcmV0dXJuIGVuZHBvaW50LmdldFBvcnQobV9z
ZXJ2ZXIudmFsdWUoKSk7CiB9CiAKLWJvb2wgUmVtb3RlSW5zcGVjdG9yU2VydmVyOjpkaWRBY2Nl
cHQoQ29ubmVjdGlvbklEIGFjY2VwdGVkSUQsIENvbm5lY3Rpb25JRCwgU29ja2V0OjpEb21haW4p
CitPcHRpb25hbDxDb25uZWN0aW9uSUQ+IFJlbW90ZUluc3BlY3RvclNlcnZlcjo6ZG9BY2NlcHQo
UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmIGVuZHBvaW50LCBQbGF0Zm9ybVNvY2tldFR5
cGUgc29ja2V0KQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byYg
aW5zcGVjdG9yID0gUmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKTsKICAgICBpZiAoaW5zcGVj
dG9yLmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJSZW1vdGVJbnNwZWN0b3Ig
Y2FuIGFjY2VwdCBvbmx5IDEgY2xpZW50Iik7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgfQogCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoYXV0byBuZXdJRCA9IGVu
ZHBvaW50LmNyZWF0ZUNsaWVudChzb2NrZXQsIGluc3BlY3RvcikpIHsKKyAgICAgICAgaW5zcGVj
dG9yLmNvbm5lY3QobmV3SUQudmFsdWUoKSk7CisgICAgICAgIHJldHVybiBuZXdJRDsKICAgICB9
Ci0gICAgaW5zcGVjdG9yLmNvbm5lY3QoYWNjZXB0ZWRJRCk7Ci0gICAgcmV0dXJuIHRydWU7CisK
KyAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAppbmRleCA0ZjczYzY2Mjky
Y2YuLjk5MmM1OWZjZTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2
ZXIuaApAQCAtNDYsOCArNDYsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMYXp5TmV2
ZXJEZXN0cm95ZWQ8UmVtb3RlSW5zcGVjdG9yU2VydmVyPjsKICAgICBSZW1vdGVJbnNwZWN0b3JT
ZXJ2ZXIoKSB7IFNvY2tldDo6aW5pdCgpOyB9CiAKLSAgICBib29sIGRpZEFjY2VwdChDb25uZWN0
aW9uSUQgYWNjZXB0ZWRJRCwgQ29ubmVjdGlvbklEIGxpc3RlbmVySUQsIFNvY2tldDo6RG9tYWlu
KSBmaW5hbDsKLSAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgZmluYWwgeyB9CisgICAg
T3B0aW9uYWw8Q29ubmVjdGlvbklEPiBkb0FjY2VwdChSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludCYsIFBsYXRmb3JtU29ja2V0VHlwZSkgZmluYWw7CisgICAgdm9pZCBkaWRDbG9zZShSZW1v
dGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25JRCkgZmluYWwgeyB9OwogCiAg
ICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBtX3NlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCmluZGV4IGE5YjhmMTZjNTA4YS4uZDJlZDc1ODlh
NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcApAQCAt
NjMsNyArNjMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6Y29ubmVjdChDb25uZWN0aW9uSUQg
aWQpCiAgICAgc3RhcnQoKTsKIH0KIAotdm9pZCBSZW1vdGVJbnNwZWN0b3I6OmRpZENsb3NlKENv
bm5lY3Rpb25JRCkKK3ZvaWQgUmVtb3RlSW5zcGVjdG9yOjpkaWRDbG9zZShSZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25JRCkKIHsKICAgICBBU1NFUlQoaXNDb25uZWN0
ZWQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuaAppbmRleCBk
YTMyMzI5MzUzNWMuLmFkOGNmYjM5NTg2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNw
ZWN0b3JTb2NrZXQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgPGFycmF5Pgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTY0
LDIwICs2NSwyMCBAQCBlbnVtIGNsYXNzIERvbWFpbiB7CiAKIHZvaWQgaW5pdCgpOwogCi1PcHRp
b25hbDxQbGF0Zm9ybVNvY2tldFR5cGU+IGNvbm5lY3QoY29uc3QgY2hhciogc2VydmVyQWRkcmVz
cywgdWludDE2X3Qgc2VydmVyUG9ydCk7Ci1PcHRpb25hbDxQbGF0Zm9ybVNvY2tldFR5cGU+IGxp
c3Rlbihjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KTsKLU9wdGlvbmFsPFBsYXRm
b3JtU29ja2V0VHlwZT4gYWNjZXB0KFBsYXRmb3JtU29ja2V0VHlwZSk7Ci1PcHRpb25hbDxzdGQ6
OmFycmF5PFBsYXRmb3JtU29ja2V0VHlwZSwgMj4+IGNyZWF0ZVBhaXIoKTsKK0pTX0VYUE9SVF9Q
UklWQVRFIE9wdGlvbmFsPFBsYXRmb3JtU29ja2V0VHlwZT4gY29ubmVjdChjb25zdCBjaGFyKiBz
ZXJ2ZXJBZGRyZXNzLCB1aW50MTZfdCBzZXJ2ZXJQb3J0KTsKK0pTX0VYUE9SVF9QUklWQVRFIE9w
dGlvbmFsPFBsYXRmb3JtU29ja2V0VHlwZT4gbGlzdGVuKGNvbnN0IGNoYXIqIGFkZHJlc3MsIHVp
bnQxNl90IHBvcnQpOworSlNfRVhQT1JUX1BSSVZBVEUgT3B0aW9uYWw8UGxhdGZvcm1Tb2NrZXRU
eXBlPiBhY2NlcHQoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKK0pTX0VYUE9SVF9QUklWQVRFIE9wdGlv
bmFsPHN0ZDo6YXJyYXk8UGxhdGZvcm1Tb2NrZXRUeXBlLCAyPj4gY3JlYXRlUGFpcigpOwogCi1i
b29sIHNldHVwKFBsYXRmb3JtU29ja2V0VHlwZSk7Ci1ib29sIGlzVmFsaWQoUGxhdGZvcm1Tb2Nr
ZXRUeXBlKTsKLWJvb2wgaXNMaXN0ZW5pbmcoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKLU9wdGlvbmFs
PHVpbnQxNl90PiBnZXRQb3J0KFBsYXRmb3JtU29ja2V0VHlwZSk7CitKU19FWFBPUlRfUFJJVkFU
RSBib29sIHNldHVwKFBsYXRmb3JtU29ja2V0VHlwZSk7CitKU19FWFBPUlRfUFJJVkFURSBib29s
IGlzVmFsaWQoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNM
aXN0ZW5pbmcoUGxhdGZvcm1Tb2NrZXRUeXBlKTsKK0pTX0VYUE9SVF9QUklWQVRFIE9wdGlvbmFs
PHVpbnQxNl90PiBnZXRQb3J0KFBsYXRmb3JtU29ja2V0VHlwZSk7CiAKLU9wdGlvbmFsPHNpemVf
dD4gcmVhZChQbGF0Zm9ybVNvY2tldFR5cGUsIHZvaWQqIGJ1ZmZlciwgaW50IGJ1ZmZlclNpemUp
OwotT3B0aW9uYWw8c2l6ZV90PiB3cml0ZShQbGF0Zm9ybVNvY2tldFR5cGUsIGNvbnN0IHZvaWQq
IGRhdGEsIGludCBzaXplKTsKK0pTX0VYUE9SVF9QUklWQVRFIE9wdGlvbmFsPHNpemVfdD4gcmVh
ZChQbGF0Zm9ybVNvY2tldFR5cGUsIHZvaWQqIGJ1ZmZlciwgaW50IGJ1ZmZlclNpemUpOworSlNf
RVhQT1JUX1BSSVZBVEUgT3B0aW9uYWw8c2l6ZV90PiB3cml0ZShQbGF0Zm9ybVNvY2tldFR5cGUs
IGNvbnN0IHZvaWQqIGRhdGEsIGludCBzaXplKTsKIAotdm9pZCBjbG9zZShQbGF0Zm9ybVNvY2tl
dFR5cGUmKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2UoUGxhdGZvcm1Tb2NrZXRUeXBl
Jik7CiAKIFBvbGxpbmdEZXNjcmlwdG9yIHByZXBhcmVQb2xsaW5nKFBsYXRmb3JtU29ja2V0VHlw
ZSk7CiBib29sIHBvbGwoVmVjdG9yPFBvbGxpbmdEZXNjcmlwdG9yPiYsIGludCB0aW1lb3V0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQu
Y3BwCmluZGV4IGE5MTA1Yjk2OWU1ZC4uNTYyYzI1NDYwMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29j
a2V0RW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKQEAgLTQ3LDYgKzQ3
LDggQEAgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpzaW5nbGV0b24oKQogCiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6
UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQoKQogeworICAgIFNvY2tldDo6aW5pdCgpOwor
CiAgICAgaWYgKGF1dG8gc29ja2V0cyA9IFNvY2tldDo6Y3JlYXRlUGFpcigpKSB7CiAgICAgICAg
IG1fd2FrZXVwU2VuZFNvY2tldCA9IHNvY2tldHMtPmF0KDApOwogICAgICAgICBtX3dha2V1cFJl
Y2VpdmVTb2NrZXQgPSBzb2NrZXRzLT5hdCgxKTsKQEAgLTY3LDcgKzY5LDcgQEAgUmVtb3RlSW5z
cGVjdG9yU29ja2V0RW5kcG9pbnQ6On5SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCgpCiAK
ICAgICBTb2NrZXQ6OmNsb3NlKG1fd2FrZXVwU2VuZFNvY2tldCk7CiAgICAgU29ja2V0OjpjbG9z
ZShtX3dha2V1cFJlY2VpdmVTb2NrZXQpOwotICAgIGZvciAoY29uc3QgYXV0byYgY29ubmVjdGlv
biA6IG1fY29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgZm9yIChjb25zdCBhdXRvJiBjb25uZWN0
aW9uIDogbV9jbGllbnRzLnZhbHVlcygpKQogICAgICAgICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rp
b24tPnNvY2tldCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjb25uZWN0aW9uIDogbV9saXN0ZW5l
cnMudmFsdWVzKCkpCiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlvbi0+c29ja2V0KTsK
QEAgLTg2LDEwICs4OCwxMCBAQCBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IFJlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50Ojpjb25uZWN0SW5ldChjb25zdCBjaGFyKiBzZQogICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVtb3RlSW5zcGVjdG9y
U29ja2V0RW5kcG9pbnQ6Omxpc3RlbkluZXQoY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3Qg
cG9ydCwgTGlzdGVuZXImIGxpc3RlbmVyLCBDbGllbnQmIGNsaWVudCkKK09wdGlvbmFsPENvbm5l
Y3Rpb25JRD4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Omxpc3RlbkluZXQoY29uc3Qg
Y2hhciogYWRkcmVzcywgdWludDE2X3QgcG9ydCwgTGlzdGVuZXImIGxpc3RlbmVyKQogewogICAg
IGlmIChhdXRvIHNvY2tldCA9IFNvY2tldDo6bGlzdGVuKGFkZHJlc3MsIHBvcnQpKQotICAgICAg
ICByZXR1cm4gY3JlYXRlTGlzdGVuZXIoKnNvY2tldCwgbGlzdGVuZXIsIGNsaWVudCk7CisgICAg
ICAgIHJldHVybiBjcmVhdGVMaXN0ZW5lcigqc29ja2V0LCBsaXN0ZW5lcik7CiAKICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogfQpAQCAtMTIxLDcgKzEyMyw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OndvcmtlclRocmVhZCgpCiAgICAgICAgIFZlY3RvcjxDb25uZWN0
aW9uSUQ+IGlkczsKICAgICAgICAgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fY29u
bmVjdGlvbnNMb2NrKTsKLSAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA6
IG1fY29ubmVjdGlvbnMpIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY29ubmVjdGlv
biA6IG1fY2xpZW50cykgewogICAgICAgICAgICAgICAgIHBvbGxmZHMuYXBwZW5kKGNvbm5lY3Rp
b24udmFsdWUtPnBvbGwpOwogICAgICAgICAgICAgICAgIGlkcy5hcHBlbmQoY29ubmVjdGlvbi5r
ZXkpOwogICAgICAgICAgICAgfQpAQCAtMTY2LDM1ICsxNjgsNTMgQEAgQ29ubmVjdGlvbklEIFJl
bW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpnZW5lcmF0ZUNvbm5lY3Rpb25JRCgpCiAgICAg
Q29ubmVjdGlvbklEIGlkOwogICAgIGRvIHsKICAgICAgICAgaWQgPSBjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbU51bWJlcigpOwotICAgIH0gd2hpbGUgKCFpZCB8fCBtX2Nvbm5lY3Rpb25zLmNvbnRh
aW5zKGlkKSB8fCBtX2xpc3RlbmVycy5jb250YWlucyhpZCkpOworICAgIH0gd2hpbGUgKCFpZCB8
fCBtX2NsaWVudHMuY29udGFpbnMoaWQpIHx8IG1fbGlzdGVuZXJzLmNvbnRhaW5zKGlkKSk7CiAK
ICAgICByZXR1cm4gaWQ7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludDo6Q29ubmVjdGlvbj4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Om1h
a2VDb25uZWN0aW9uKFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIENsaWVudCYgY2xpZW50KQor
T3B0aW9uYWw8Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Y3Jl
YXRlQ2xpZW50KFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIENsaWVudCYgY2xpZW50KQogewot
ICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25zTG9jay5pc0xvY2tlZCgpKTsKKyAgICBBU1NFUlQoU29j
a2V0Ojppc1ZhbGlkKHNvY2tldCkpOwogCi0gICAgU29ja2V0OjpzZXR1cChzb2NrZXQpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7CisgICAgYXV0byBpZCA9IGdlbmVy
YXRlQ29ubmVjdGlvbklEKCk7CisgICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxDbGll
bnRDb25uZWN0aW9uPihpZCwgc29ja2V0LCBjbGllbnQpOworICAgIG1fY2xpZW50cy5hZGQoaWQs
IFdURk1vdmUoY29ubmVjdGlvbikpOworICAgIHdha2V1cFdvcmtlclRocmVhZCgpOwogCi0gICAg
YXV0byBjb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxDb25uZWN0aW9uPihjbGllbnQpOworICAgIHJl
dHVybiBpZDsKK30KIAotICAgIGNvbm5lY3Rpb24tPmlkID0gZ2VuZXJhdGVDb25uZWN0aW9uSUQo
KTsKLSAgICBjb25uZWN0aW9uLT5wb2xsID0gU29ja2V0OjpwcmVwYXJlUG9sbGluZyhzb2NrZXQp
OwotICAgIGNvbm5lY3Rpb24tPnNvY2tldCA9IHNvY2tldDsKK3ZvaWQgUmVtb3RlSW5zcGVjdG9y
U29ja2V0RW5kcG9pbnQ6OmRpc2Nvbm5lY3QoQ29ubmVjdGlvbklEIGlkKQoreworICAgIExvY2tI
b2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7CiAKLSAgICByZXR1cm4gY29ubmVjdGlvbjsK
KyAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
KyAgICAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGlkKTsKKyAgICAgICAgU29ja2V0OjpjbG9zZShj
b25uZWN0aW9uLT5zb2NrZXQpOworICAgICAgICBsb2NrLnVubG9ja0Vhcmx5KCk7CisgICAgICAg
IGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRpZENsb3NlKCp0aGlzLCBpZCk7CisgICAgfSBlbHNlIGlm
IChjb25zdCBhdXRvJiBjb25uZWN0aW9uID0gbV9jbGllbnRzLmdldChpZCkpIHsKKyAgICAgICAg
bV9jbGllbnRzLnJlbW92ZShpZCk7CisgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlvbi0+
c29ja2V0KTsKKyAgICAgICAgbG9jay51bmxvY2tFYXJseSgpOworICAgICAgICBjb25uZWN0aW9u
LT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKKyAgICB9IGVsc2UKKyAgICAgICAgTE9HX0VS
Uk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IEludmFsaWQgaWQiKTsKIH0KIAotT3B0aW9u
YWw8Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Y3JlYXRlQ2xp
ZW50KFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIENsaWVudCYgY2xpZW50KQorT3B0aW9uYWw8
Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Y3JlYXRlTGlzdGVu
ZXIoUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgTGlzdGVuZXImIGxpc3RlbmVyKQogewotICAg
IGlmICghU29ja2V0Ojppc1ZhbGlkKHNvY2tldCkpCisgICAgQVNTRVJUKFNvY2tldDo6aXNWYWxp
ZChzb2NrZXQpKTsKKworICAgIGlmICghU29ja2V0OjpzZXR1cChzb2NrZXQpKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNM
b2NrKTsKLSAgICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlQ29ubmVjdGlvbihzb2NrZXQsIGNsaWVu
dCk7Ci0gICAgYXV0byBpZCA9IGNvbm5lY3Rpb24tPmlkOwotICAgIG1fY29ubmVjdGlvbnMuYWRk
KGlkLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICBhdXRvIGlkID0gZ2VuZXJhdGVDb25uZWN0
aW9uSUQoKTsKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPExpc3RlbmVyQ29ubmVj
dGlvbj4oaWQsIHNvY2tldCwgbGlzdGVuZXIpOworICAgIG1fbGlzdGVuZXJzLmFkZChpZCwgV1RG
TW92ZShjb25uZWN0aW9uKSk7CiAgICAgd2FrZXVwV29ya2VyVGhyZWFkKCk7CiAKICAgICByZXR1
cm4gaWQ7CkBAIC0yMDIsMTcgKzIyMiwxNCBAQCBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IFJlbW90
ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVDbGllbnQoUGxhdGZvcm1Tb2NrZQogCiBP
cHRpb25hbDxDb25uZWN0aW9uSUQ+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVh
dGVMaXN0ZW5lcihQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0LCBMaXN0ZW5lciYgbGlzdGVuZXIs
IENsaWVudCYgY2xpZW50KQogewotICAgIGlmICghU29ja2V0Ojppc1ZhbGlkKHNvY2tldCkpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBMb2NrSG9sZGVyIGxvY2sobV9jb25u
ZWN0aW9uc0xvY2spOworICAgIEFTU0VSVChTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSk7CiAKICAg
ICBpZiAoIVNvY2tldDo6c2V0dXAoc29ja2V0KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAotICAgIGF1dG8gY29ubmVjdGlvbiA9IG1ha2VDb25uZWN0aW9uKHNvY2tldCwgY2xpZW50
KTsKLSAgICBhdXRvIGlkID0gY29ubmVjdGlvbi0+aWQ7Ci0gICAgY29ubmVjdGlvbi0+bGlzdGVu
ZXIgPSAmbGlzdGVuZXI7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2NrKTsK
KyAgICBhdXRvIGlkID0gZ2VuZXJhdGVDb25uZWN0aW9uSUQoKTsKKyAgICBhdXRvIGNvbm5lY3Rp
b24gPSBtYWtlVW5pcXVlPExpc3RlbmVyQ29ubmVjdGlvbj4oaWQsIHNvY2tldCwgbGlzdGVuZXIp
OwogICAgIG1fbGlzdGVuZXJzLmFkZChpZCwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgd2Fr
ZXVwV29ya2VyVGhyZWFkKCk7CiAKQEAgLTIyMiw3ICsyMzksNyBAQCBPcHRpb25hbDxDb25uZWN0
aW9uSUQ+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVMaXN0ZW5lcihQbGF0
Zm9ybVNvYwogdm9pZCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6aW52YWxpZGF0ZUNs
aWVudChDbGllbnQmIGNsaWVudCkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2sobV9jb25uZWN0aW9u
c0xvY2spOwotICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlSWYoWyZjbGllbnRdKGF1dG8mIGtleVZh
bHVlKSB7CisgICAgbV9jbGllbnRzLnJlbW92ZUlmKFsmY2xpZW50XShhdXRvJiBrZXlWYWx1ZSkg
ewogICAgICAgICBjb25zdCBhdXRvJiBjb25uZWN0aW9uID0ga2V5VmFsdWUudmFsdWU7CiAKICAg
ICAgICAgaWYgKCZjb25uZWN0aW9uLT5jbGllbnQgIT0gJmNsaWVudCkKQEAgLTI0MCw3ICsyNTcs
NyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjppbnZhbGlkYXRlTGlzdGVu
ZXIoTGlzdGVuZXImIGxpc3RlbmVyKQogICAgIG1fbGlzdGVuZXJzLnJlbW92ZUlmKFsmbGlzdGVu
ZXJdKGF1dG8mIGtleVZhbHVlKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBr
ZXlWYWx1ZS52YWx1ZTsKIAotICAgICAgICBpZiAoY29ubmVjdGlvbi0+bGlzdGVuZXIgPT0gJmxp
c3RlbmVyKSB7CisgICAgICAgIGlmICgmY29ubmVjdGlvbi0+bGlzdGVuZXIgPT0gJmxpc3RlbmVy
KSB7CiAgICAgICAgICAgICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjU0LDcgKzI3MSw3IEBAIE9wdGlv
bmFsPHVpbnQxNl90PiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Z2V0UG9ydChDb25u
ZWN0aW9uSUQgaWQpIGNvbnN0CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2Nr
KTsKICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkp
CiAgICAgICAgIHJldHVybiBTb2NrZXQ6OmdldFBvcnQoY29ubmVjdGlvbi0+c29ja2V0KTsKLSAg
ICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0KGlkKSkKKyAg
ICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY2xpZW50cy5nZXQoaWQpKQogICAgICAg
ICByZXR1cm4gU29ja2V0OjpnZXRQb3J0KGNvbm5lY3Rpb24tPnNvY2tldCk7CiAKICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwpAQCAtMjYzLDI4ICsyODAsMjkgQEAgT3B0aW9uYWw8dWludDE2X3Q+
IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpnZXRQb3J0KENvbm5lY3Rpb25JRCBpZCkg
Y29uc3QKIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQo
Q29ubmVjdGlvbklEIGlkKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9j
ayk7Ci0gICAgaWYgKGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLmdldChp
ZCkpIHsKKyAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY2xpZW50cy5nZXQoaWQp
KSB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiByZWN2QnVmZmVyKFNvY2tldDo6QnVmZmVyU2l6
ZSk7CiAgICAgICAgIGlmIChhdXRvIHJlYWRTaXplID0gU29ja2V0OjpyZWFkKGNvbm5lY3Rpb24t
PnNvY2tldCwgcmVjdkJ1ZmZlci5kYXRhKCksIHJlY3ZCdWZmZXIuc2l6ZSgpKSkgewogICAgICAg
ICAgICAgaWYgKCpyZWFkU2l6ZSA+IDApIHsKICAgICAgICAgICAgICAgICByZWN2QnVmZmVyLnNo
cmluaygqcmVhZFNpemUpOwotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRS
ZWNlaXZlKGlkLCBXVEZNb3ZlKHJlY3ZCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICBsb2NrLnVu
bG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xpZW50LmRpZFJlY2Vp
dmUoKnRoaXMsIGlkLCBXVEZNb3ZlKHJlY3ZCdWZmZXIpKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBTb2NrZXQ6OmNsb3NlKGNv
bm5lY3Rpb24tPnNvY2tldCk7Ci0gICAgICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlKGlkKTsKKyAg
ICAgICAgbV9jbGllbnRzLnJlbW92ZShpZCk7CiAKICAgICAgICAgbG9jay51bmxvY2tFYXJseSgp
OwotICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoaWQpOworICAgICAgICBjb25u
ZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAgICB9CiB9CiAKIHZvaWQgUmVt
b3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnNlbmRJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlk
KQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7Ci0gICAgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLmdldChpZCkpIHsKKyAgICBpZiAo
Y29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY2xpZW50cy5nZXQoaWQpKSB7CiAgICAgICAgIFNv
Y2tldDo6Y2xlYXJXYWl0aW5nV3JpdGFibGUoY29ubmVjdGlvbi0+cG9sbCk7CiAKICAgICAgICAg
YXV0byYgYnVmZmVyID0gY29ubmVjdGlvbi0+c2VuZEJ1ZmZlcjsKQEAgLTMwOSw3ICszMjcsNyBA
QCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpzZW5kSWZFbmFibGVkKENvbm5l
Y3Rpb25JRCBpZCkKIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnNlbmQoQ29u
bmVjdGlvbklEIGlkLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBM
b2NrSG9sZGVyIGxvY2sobV9jb25uZWN0aW9uc0xvY2spOwotICAgIGlmIChjb25zdCBhdXRvJiBj
b25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5nZXQoaWQpKSB7CisgICAgaWYgKGNvbnN0IGF1dG8m
IGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBzaXplX3Qgb2Zmc2V0
ID0gMDsKICAgICAgICAgaWYgKGNvbm5lY3Rpb24tPnNlbmRCdWZmZXIuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAvLyBUcnkgdG8gY2FsbCBzZW5kKCkgZGlyZWN0bHkgaWYgYnVmZmVyIGlzIGVt
cHR5LgpAQCAtMzM5LDEzICszNTcsOCBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBv
aW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAg
aWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29ja2V0KSkgewog
ICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3JlYXRlQ2xpZW50
IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KICAgICAgICAgICAgIGxvY2sudW5sb2NrRWFy
bHkoKTsKLSAgICAgICAgICAgIGlmIChhdXRvIG5ld0lEID0gY3JlYXRlQ2xpZW50KCpzb2NrZXQs
IGNvbm5lY3Rpb24tPmNsaWVudCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY29ubmVjdGlvbi0+
bGlzdGVuZXItPmRpZEFjY2VwdChuZXdJRC52YWx1ZSgpLCBjb25uZWN0aW9uLT5pZCwgU29ja2V0
OjpEb21haW46Ok5ldHdvcmspKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgICAgICAgICBtX2Nvbm5lY3Rpb25zLnJlbW92ZShpZCk7Ci0gICAgICAgICAgICB9Ci0KKyAg
ICAgICAgICAgIGlmIChjb25uZWN0aW9uLT5saXN0ZW5lci5kb0FjY2VwdCgqdGhpcywgc29ja2V0
LnZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIFNvY2tldDo6
Y2xvc2UoKnNvY2tldCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0
RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCmluZGV4IDNlNDlhNTVlOGMzYS4uOWYz
ZDcyZTk2MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29j
a2V0RW5kcG9pbnQuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVD
VE9SKQogCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yU29ja2V0LmgiCi0KICNpbmNsdWRlIDx3
dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KQEAgLTM4LDE5ICszNywyMSBAQAogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsK
IAotY2xhc3MgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQgeworY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZShDb25uZWN0aW9uSUQsIFZlY3Rvcjx1aW50
OF90PiYmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb25uZWN0aW9uSUQp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklE
LCBWZWN0b3I8dWludDhfdD4mJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2Uo
UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQpID0gMDsKICAgICB9
OwogCiAgICAgY2xhc3MgTGlzdGVuZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCBi
b29sIGRpZEFjY2VwdChDb25uZWN0aW9uSUQgYWNjZXB0ZWRJRCwgQ29ubmVjdGlvbklEIGxpc3Rl
bmVySUQsIFNvY2tldDo6RG9tYWluKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShDb25uZWN0aW9uSUQpID0gMDsKKyAgICAgICAgdmlydHVhbCB+TGlzdGVuZXIoKSB7IH0KKyAg
ICAgICAgdmlydHVhbCBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGRvQWNjZXB0KFJlbW90ZUluc3Bl
Y3RvclNvY2tldEVuZHBvaW50JiwgUGxhdGZvcm1Tb2NrZXRUeXBlKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRDbG9zZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5l
Y3Rpb25JRCkgPSAwOwogICAgIH07CiAKICAgICBzdGF0aWMgUmVtb3RlSW5zcGVjdG9yU29ja2V0
RW5kcG9pbnQmIHNpbmdsZXRvbigpOwpAQCAtNTksMzUgKzYwLDYxIEBAIHB1YmxpYzoKICAgICB+
UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQoKTsKIAogICAgIE9wdGlvbmFsPENvbm5lY3Rp
b25JRD4gY29ubmVjdEluZXQoY29uc3QgY2hhciogc2VydmVyQWRkciwgdWludDE2X3Qgc2VydmVy
UG9ydCwgQ2xpZW50Jik7Ci0gICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBsaXN0ZW5JbmV0KGNv
bnN0IGNoYXIqIGFkZHJlc3MsIHVpbnQxNl90IHBvcnQsIExpc3RlbmVyJiwgQ2xpZW50Jik7Cisg
ICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBsaXN0ZW5JbmV0KGNvbnN0IGNoYXIqIGFkZHJlc3Ms
IHVpbnQxNl90IHBvcnQsIExpc3RlbmVyJik7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2xpZW50KENs
aWVudCYpOwogICAgIHZvaWQgaW52YWxpZGF0ZUxpc3RlbmVyKExpc3RlbmVyJik7CiAKICAgICB2
b2lkIHNlbmQoQ29ubmVjdGlvbklELCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QpOworICAg
IGlubGluZSB2b2lkIHNlbmQoQ29ubmVjdGlvbklEIGlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGRhdGEpIHsgc2VuZChpZCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsgfQorICAgIGlubGlu
ZSB2b2lkIHNlbmQoQ29ubmVjdGlvbklEIGlkLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVu
Z3RoKSB7IHNlbmQoaWQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBs
ZW5ndGgpOyB9CiAKICAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGNyZWF0ZUNsaWVudChQbGF0
Zm9ybVNvY2tldFR5cGUsIENsaWVudCYpOwogICAgIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gY3Jl
YXRlTGlzdGVuZXIoUGxhdGZvcm1Tb2NrZXRUeXBlLCBMaXN0ZW5lciYsIENsaWVudCYpOwogCiAg
ICAgT3B0aW9uYWw8dWludDE2X3Q+IGdldFBvcnQoQ29ubmVjdGlvbklEKSBjb25zdDsKIAorICAg
IHZvaWQgZGlzY29ubmVjdChDb25uZWN0aW9uSUQpOworCiBwcm90ZWN0ZWQ6Ci0gICAgc3RydWN0
IENvbm5lY3Rpb24geworICAgIHN0cnVjdCBCYXNlQ29ubmVjdGlvbiB7CiAgICAgICAgIFdURl9N
QUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgZXhwbGljaXQgQ29ubmVjdGlvbihD
bGllbnQmIGNsaWVudCkKLSAgICAgICAgICAgIDogY2xpZW50KGNsaWVudCkKKworICAgICAgICBC
YXNlQ29ubmVjdGlvbihDb25uZWN0aW9uSUQgaWQsIFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQp
CisgICAgICAgICAgICA6IGlkIHsgaWQgfQorICAgICAgICAgICAgLCBzb2NrZXQgeyBzb2NrZXQg
fQorICAgICAgICAgICAgLCBwb2xsIHsgU29ja2V0OjpwcmVwYXJlUG9sbGluZyhzb2NrZXQpIH0K
ICAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKFNvY2tldDo6aXNWYWxpZChzb2NrZXQpKTsK
ICAgICAgICAgfQogCiAgICAgICAgIENvbm5lY3Rpb25JRCBpZDsKLSAgICAgICAgVmVjdG9yPHVp
bnQ4X3Q+IHNlbmRCdWZmZXI7Ci0gICAgICAgIFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQgeyBJ
TlZBTElEX1NPQ0tFVF9WQUxVRSB9OworICAgICAgICBQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0
OwogICAgICAgICBQb2xsaW5nRGVzY3JpcHRvciBwb2xsOworICAgIH07CisKKyAgICBzdHJ1Y3Qg
Q2xpZW50Q29ubmVjdGlvbiA6IHB1YmxpYyBCYXNlQ29ubmVjdGlvbiB7CisgICAgICAgIENsaWVu
dENvbm5lY3Rpb24oQ29ubmVjdGlvbklEIGlkLCBQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0LCBD
bGllbnQmIGNsaWVudCkKKyAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQsIHNvY2tldCkK
KyAgICAgICAgICAgICwgY2xpZW50IHsgY2xpZW50IH0KKyAgICAgICAgeworICAgICAgICB9CisK
ICAgICAgICAgQ2xpZW50JiBjbGllbnQ7Ci0gICAgICAgIExpc3RlbmVyKiBsaXN0ZW5lciB7IH07
CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzZW5kQnVmZmVyOworICAgIH07CisKKyAgICBzdHJ1
Y3QgTGlzdGVuZXJDb25uZWN0aW9uIDogcHVibGljIEJhc2VDb25uZWN0aW9uIHsKKyAgICAgICAg
TGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgUGxhdGZvcm1Tb2NrZXRUeXBlIHNv
Y2tldCwgTGlzdGVuZXImIGxpc3RlbmVyKQorICAgICAgICAgICAgOiBCYXNlQ29ubmVjdGlvbihp
ZCwgc29ja2V0KQorICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KKyAgICAgICAg
eworICAgICAgICB9CisKKyAgICAgICAgTGlzdGVuZXImIGxpc3RlbmVyOwogICAgIH07CiAKICAg
ICBDb25uZWN0aW9uSUQgZ2VuZXJhdGVDb25uZWN0aW9uSUQoKTsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q29ubmVjdGlvbj4gbWFrZUNvbm5lY3Rpb24oUGxhdGZvcm1Tb2NrZXRUeXBlLCBDbGllbnQm
KTsKKyAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGNyZWF0ZUxpc3RlbmVyKFBsYXRmb3JtU29j
a2V0VHlwZSwgTGlzdGVuZXImKTsKIAogICAgIHZvaWQgcmVjdklmRW5hYmxlZChDb25uZWN0aW9u
SUQpOwogICAgIHZvaWQgc2VuZElmRW5hYmxlZChDb25uZWN0aW9uSUQpOwpAQCAtOTcsOCArMTI0
LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKIAog
ICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsKLSAgICBIYXNoTWFwPENvbm5lY3Rp
b25JRCwgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+PiBtX2Nvbm5lY3Rpb25zOwotICAgIEhh
c2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4+IG1fbGlzdGVu
ZXJzOworICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2xpZW50Q29u
bmVjdGlvbj4+IG1fY2xpZW50czsKKyAgICBIYXNoTWFwPENvbm5lY3Rpb25JRCwgc3RkOjp1bmlx
dWVfcHRyPExpc3RlbmVyQ29ubmVjdGlvbj4+IG1fbGlzdGVuZXJzOwogCiAgICAgUGxhdGZvcm1T
b2NrZXRUeXBlIG1fd2FrZXVwU2VuZFNvY2tldCB7IElOVkFMSURfU09DS0VUX1ZBTFVFIH07CiAg
ICAgUGxhdGZvcm1Tb2NrZXRUeXBlIG1fd2FrZXVwUmVjZWl2ZVNvY2tldCB7IElOVkFMSURfU09D
S0VUX1ZBTFVFIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0Y2U0YWZhMjkwYi4uZDkzODhkN2I2YThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA5LTE5ICBCYXN1a2UgU3V6dWtpICA8YmFzdWtl
LnN1enVraUBzb255LmNvbT4KKworICAgICAgICBbV2luQ2Fpcm9dW1BsYXlTdGF0aW9uXSBTdXBw
b3J0IGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgbGlzdGVuZXIgY2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NzMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRG9uIE9sbXN0ZWFkLgorCisgICAgICAgIEZvbGxvd3MgdGhlIGNoYW5nZSBvZiBS
ZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Q2xpZW50IGludGVyZmFjZSBjaGFuZ2UuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUncyBubyBiZWhhaXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50OjpkaWRD
bG9zZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yQ2xpZW50Lmg6CisKIDIwMjAtMDktMTggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NjYzNCk6IGZhc3Qvc2VsZWN0b3JzL3RleHQt
ZmllbGQtc2VsZWN0aW9uLXN0cm9rZS1jb2xvci5odG1sIGFuZCBmYXN0L3NlbGVjdG9ycy90ZXh0
LWZpZWxkLXNlbGVjdGlvbi13aW5kb3ctaW5hY3RpdmUtc3Ryb2tlLWNvbG9yLmh0bWwgYXJlIGZs
YWt5IGZhaWx1cmVzIHdpdGggcGl4ZWwgbm9pc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xp
ZW50LmNwcAppbmRleCA2NzQ3OWNlZjIyYWYuLjAyZGFjMWY1NjBmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVt
b3RlSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVtb3RlSW5z
cGVjdG9yQ2xpZW50Ojpjb25uZWN0aW9uQ2xvc2VkKCkKICAgICBtX29ic2VydmVyLnRhcmdldExp
c3RDaGFuZ2VkKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6OmRpZENs
b3NlKENvbm5lY3Rpb25JRCkKK3ZvaWQgUmVtb3RlSW5zcGVjdG9yQ2xpZW50OjpkaWRDbG9zZShJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklEKQog
ewogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdIHsKICAgICAgICAgY29ubmVjdGlvbkNsb3Nl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOWY1MWQ2M2RlYTA2Li43
OWVhYzFhYmY5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaApAQCAtODIsNyAr
ODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IEV2
ZW50Jik7CiAgICAgdm9pZCBzZXRCYWNrZW5kQ29tbWFuZHMoY29uc3QgRXZlbnQmKTsKIAotICAg
IHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbklEKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3NlKElu
c3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQpIGZp
bmFsOwogICAgIEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4mIGRpc3BhdGNoTWFwKCkgZmlu
YWw7CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>