<?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>126826</bug_id>
          
          <creation_ts>2014-01-11 15:03:09 -0800</creation_ts>
          <short_desc>InspectorAgentRegistry should use std::unique_ptr</short_desc>
          <delta_ts>2014-01-11 16:50:22 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>966849</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-11 15:03:09 -0800</bug_when>
    <thetext>InspectorAgentRegistry should use std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966850</commentid>
    <comment_count>1</comment_count>
      <attachid>220947</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-11 15:05:15 -0800</bug_when>
    <thetext>Created attachment 220947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966854</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-11 16:50:22 -0800</bug_when>
    <thetext>Committed r161784: &lt;http://trac.webkit.org/changeset/161784&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220947</attachid>
            <date>2014-01-11 15:05:15 -0800</date>
            <delta_ts>2014-01-11 16:45:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126826-20140111150514.patch</filename>
            <type>text/plain</type>
            <size>58731</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
N2UyM2M2YjE2M2JiYzc5ZWEyNmVmNjU2OGVhZTQ4NDkyNGU4ZDc5Li4xYWFjOTU2NWQ5YTQzOGU4
Y2Y4ZDdiYjM0ZWI4NTQyY2VkMjQ1ZDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNC0wMS0xMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEluc3BlY3RvckFnZW50UmVnaXN0cnkgc2hvdWxkIHVzZSBzdGQ6OnVu
aXF1ZV9wdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNjgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5OjphcHBlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50Lmg6CisK
IDIwMTQtMDEtMTAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQdXNoIEluc3BlY3RvckFnZW50IGRvd24gaW50byBKU0MsIGdp
dmUgSlNDIGFuIEluc3BlY3RvckNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYTRkNGY2MWRmZTZi
ZDc5YzY2MTRkNDFkYmE0NDg2ODk1Mzk3NDBhLi5jMjQ3YjhlZWNjYjFiYzY2ZGI2NWNiZmM5NTZk
OTJkYWM5OWJkOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTQtMDEtMTEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBJbnNwZWN0b3JB
Z2VudFJlZ2lzdHJ5IHNob3VsZCB1c2Ugc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY4MjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckxh
eWVyVHJlZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50
LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICog
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6CisKIDIwMTQtMDEtMTEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHVwZGF0ZVNjcm9sbGlu
Z0xheWVyV2l0aENsaWVudCgpIGZvciBpT1MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAppbmRleCA0NmU5
MjAxMGVlOTllYzM4Y2EwMDViOTc4MzU4ZjZlODM4MTA2MjRiLi41M2U5ZjU2MjMyYjY4MDg0ZmVl
MTZjNWRjMzlmYWJmZmYzMDQ4NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKQEAgLTMxLDkgKzMx
LDkgQEAKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKLXZvaWQgSW5zcGVjdG9yQWdlbnRSZWdp
c3RyeTo6YXBwZW5kKFBhc3NPd25QdHI8SW5zcGVjdG9yQWdlbnRCYXNlPiBhZ2VudCkKK3ZvaWQg
SW5zcGVjdG9yQWdlbnRSZWdpc3RyeTo6YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JB
Z2VudEJhc2U+IGFnZW50KQogewotICAgIG1fYWdlbnRzLmFwcGVuZChhZ2VudCk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKHN0ZDo6bW92ZShhZ2VudCkpOwogfQogCiB2b2lkIEluc3BlY3RvckFnZW50
UmVnaXN0cnk6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqIGJhY2tl
bmREaXNwYXRjaGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAppbmRleCBjYjY1NzI2ZGRjNDY5M2NhOTFiNTFh
ZjlkM2UxZDNjM2EyZTkyNmY1Li45N2U0ZTY3NDEwN2Q3MWM2MGM3YTFiNjlkODAwMGFmZTc2YTdk
NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50UmVnaXN0cnkuaApAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBJbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5X2gKIAogI2luY2x1ZGUgIkluc3BlY3RvckFnZW50QmFzZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKQEAgLTM4LDE0ICszNywyMiBAQCBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWw7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckFnZW50UmVn
aXN0cnkgewogcHVibGljOgotICAgIHZvaWQgYXBwZW5kKFBhc3NPd25QdHI8SW5zcGVjdG9yQWdl
bnRCYXNlPik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KKyAg
ICBUJiBjcmVhdGVBbmRBcHBlbmQoQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxUPihzdGQ6OmZvcndhcmQ8QXJncy4uLj4oYXJn
cykuLi4pKTsKKworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCY+KCptX2FnZW50cy5sYXN0
KCkpOworICAgIH0KKworICAgIHZvaWQgYXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JB
Z2VudEJhc2U+KTsKIAogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKik7CiAgICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOwogICAgIHZvaWQgZGlzY2FyZEFn
ZW50cygpOwogCiBwcml2YXRlOgotICAgIFZlY3RvcjxPd25QdHI8SW5zcGVjdG9yQWdlbnRCYXNl
Pj4gbV9hZ2VudHM7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2VudEJh
c2U+PiBtX2FnZW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDMzMTRiMzk1MDNjYmYzNTczODlh
YWUyMjQ5ZDNlNDBlNDcwYWJkZWEuLjc0NjJhYWQyMDBmY2I1MjYzMWM5ZmNmODZjYjZjOTM2NjE0
OWFmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTQ1
LDggKzQ1LDcgQEAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNHbG9iYWxPYmoKICAgICAsIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKHN0ZDo6bWFrZV91bmlxdWU8SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPigqdGhpcywg
SW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVhdGUoKSkpCiAgICAgLCBtX2luc3BlY3RvckZyb250ZW5k
Q2hhbm5lbChudWxscHRyKQogewotICAgIE93blB0cjxJbnNwZWN0b3JBZ2VudD4gaW5zcGVjdG9y
QWdlbnQoSW5zcGVjdG9yQWdlbnQ6OmNyZWF0ZSgpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoaW5z
cGVjdG9yQWdlbnQucmVsZWFzZSgpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JBZ2VudD4oKSk7CiAKICAgICAvLyBGSVhNRTogQ3JlYXRlIFJ1bnRpbWVB
Z2VudC4KICAgICAvLyBGSVhNRTogQ3JlYXRlIERlYnVnZ2VyQWdlbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaApp
bmRleCBhNzQwYzg0ZmM4YjgzNTk1MTZhNzYwMzJkZTk0NjM4YTEyOTU1MGI2Li5mYTg1OWNmYzhj
NGQxYzE1NDA0MzIyY2UyZDVmYjY1MjYwN2Q5NDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBKU19FWFBPUlRfUFJJ
VkFURSBJbnNwZWN0b3JBZ2VudCBGSU5BTCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1
YmxpYyBJbnNwZWN0b3JJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckFnZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxJbnNwZWN0b3JBZ2VudD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3
IEluc3BlY3RvckFnZW50KTsgfQorICAgIEluc3BlY3RvckFnZW50KCk7CiAgICAgdmlydHVhbCB+
SW5zcGVjdG9yQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIqKSBPVkVSUklERTsKQEAgLTYwLDggKzYwLDYgQEAgcHVibGljOgogICAgIHZvaWQgZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIHRlc3RDYWxsSWQsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0KTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JBZ2VudCgpOwotCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEluc3BlY3Rvckluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERp
c3BhdGNoZXI7CiAgICAgUmVmUHRyPEluc3BlY3Rvckluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
PiBtX2JhY2tlbmREaXNwYXRjaGVyOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8bG9uZywgU3RyaW5n
Pj4gbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5kZXgg
ZTMxYzQ5MzBiZWI0MzUyZTFiOGQ0Mjg2Mzg1ZjI4ODBlYTFkODZlOC4uMzVhNjg5ZjA5ZThiZjAy
ODI0NmFlYjliMmE2MjgwYzI2MzdlZDliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaApAQCAtNTMsMTAg
KzUzLDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5z
cGVjdG9yOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCkpOwotICAgIH0KKyAg
ICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvclBhZ2VBZ2VudCopOwogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQo
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgT1ZFUlJJREU7CkBAIC03MSw3ICs2OCw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXBw
bGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZT4mKTsKIAogcHJpdmF0ZToKLSAgICBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
clBhZ2VBZ2VudCopOwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXBw
bGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZT4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlv
bkNhY2hlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0JiwgY29u
c3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYpOwogICAgIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXBwbGlj
YXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPj4gYnVpbGRBcnJheUZvckFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNl
SW5mb0xpc3QmKTsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFwcGxp
Y2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNl
SW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApp
bmRleCAxZDcyYzlmNDg1NWFmODBkNjI2N2NlNmU5NDBlYjBjZjJhZjYwYjFkLi4wY2Q2NDIyMTk0
MGJlMGRjODI1YTY2NTBkZTE4ODAxOGFkMmI2NmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtOTAsMTQgKzkwLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeTsKICAg
ICB9OwogCi0gICAgc3RhdGljIENTU1N0eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUoQ1NTUnVsZSop
OwotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yQ1NTQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JET01BZ2VudCog
ZG9tQWdlbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckNT
U0FnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGRvbUFnZW50KSk7Ci0gICAgfQorICAgIEluc3Bl
Y3RvckNTU0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JET01BZ2VudCopOwog
ICAgIH5JbnNwZWN0b3JDU1NBZ2VudCgpOwogCisgICAgc3RhdGljIENTU1N0eWxlUnVsZSogYXND
U1NTdHlsZVJ1bGUoQ1NTUnVsZSopOworCiAgICAgYm9vbCBmb3JjZVBzZXVkb1N0YXRlKEVsZW1l
bnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCos
IEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBPVkVSUklERTsKQEAg
LTE0OSw4ICsxNDYsNiBAQCBwcml2YXRlOgogICAgIGNsYXNzIFNldFJ1bGVTZWxlY3RvckFjdGlv
bjsKICAgICBjbGFzcyBBZGRSdWxlQWN0aW9uOwogCi0gICAgSW5zcGVjdG9yQ1NTQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckRPTUFnZW50Kik7Ci0KICAgICB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldD4+IElkVG9JbnNwZWN0b3JT
dHlsZVNoZWV0OwogICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgUmVmUHRyPElu
c3BlY3RvclN0eWxlU2hlZXQ+PiBDU1NTdHlsZVNoZWV0VG9JbnNwZWN0b3JTdHlsZVNoZWV0Owog
ICAgIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXRGb3JJ
bmxpbmVTdHlsZT4+IE5vZGVUb0luc3BlY3RvclN0eWxlU2hlZXQ7IC8vIGJvZ3VzICJzdHlsZXNo
ZWV0cyIgd2l0aCBlbGVtZW50cycgaW5saW5lIHN0eWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCBlMzk4Y2YzZDUyNWFjOTA4NTVl
ZTY0NGU4ZDkxYzBmZjc4NDJmOGFhLi41MDgzZGFkNmY0NWNlMDUxODY1YTQ2MDI2ZWQyMWY4M2M1
YjM5ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaApAQCAtNjIsMTAgKzYyLDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAK
IGNsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQ2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JDYW52YXNBZ2VudD4g
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBJbnNwZWN0b3JDYW52YXNBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikpOwotICAgIH0KKyAgICBJbnNwZWN0b3JDYW52YXNBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yOjpJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqKTsKICAgICB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyKikgT1ZFUlJJREU7CkBAIC05NSw4ICs5Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UmVzb3VyY2VTdGF0ZShFcnJvclN0cmluZyosIGNvbnN0IEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OkNhbnZhczo6VHJhY2VMb2dJZCYsIGNvbnN0IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OkNhbnZhczo6UmVzb3VyY2VJZCYsIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52
YXM6OlJlc291cmNlU3RhdGU+Jik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yQ2FudmFzQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7Ci0KICAgICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVs
ZSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZShFcnJvclN0cmluZyosIEpTQzo6RXhlY1N0YXRl
Kik7CiAgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgaW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGUoRXJyb3JTdHJpbmcqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3QmKTsKICAg
ICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZShF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGY4NmMyMDFiMWNjMTJkM2FlMDg1YWI2
Nzg4Njc1MjZiMDgyZWQ5NmYuLjlhNGYxMWE2ZGIxOTM3ODhhZjdkNDY5MzQ1MDM0MTA0ZWMzYzQ0
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTk2LDgwICs5Niw3OSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JD
b250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogewogICAg
IEFTU0VSVF9BUkcoaW5zcGVjdG9yQ2xpZW50LCBpbnNwZWN0b3JDbGllbnQpOwogCi0gICAgT3du
UHRyPEluc3BlY3RvckFnZW50PiBpbnNwZWN0b3JBZ2VudFB0cihJbnNwZWN0b3JBZ2VudDo6Y3Jl
YXRlKCkpOworICAgIGF1dG8gaW5zcGVjdG9yQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPElu
c3BlY3RvckFnZW50PigpOwogICAgIG1faW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFB0
ci5nZXQoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFnZW50KG1f
aW5zcGVjdG9yQWdlbnQpOwotICAgIG1fYWdlbnRzLmFwcGVuZChpbnNwZWN0b3JBZ2VudFB0ci5y
ZWxlYXNlKCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoaW5zcGVjdG9yQWdlbnRQ
dHIpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IHBhZ2VBZ2VudFB0cihJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2Us
IGluc3BlY3RvckNsaWVudCwgbV9vdmVybGF5LmdldCgpKSk7CisgICAgYXV0byBwYWdlQWdlbnRQ
dHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclBhZ2VBZ2VudD4obV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBwYWdlLCBpbnNwZWN0b3JDbGllbnQsIG1fb3ZlcmxheS5nZXQoKSk7CiAg
ICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7CiAg
ICAgbV9wYWdlQWdlbnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5k
KHBhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUo
cGFnZUFnZW50UHRyKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGRvbUFnZW50
UHRyKEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBwYWdlQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX292ZXJsYXkuZ2V0
KCkpKTsKKyAgICBhdXRvIGRvbUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JE
T01BZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX292ZXJsYXkuZ2V0KCkpOwogICAgIG1fZG9tQWdlbnQg
PSBkb21BZ2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoZG9tQWdlbnRQdHIucmVs
ZWFzZSgpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRvbUFnZW50UHRyKSk7CiAK
LSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIG1fZG9tQWdlbnQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDU1NBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX2RvbUFnZW50KSk7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIE93blB0
cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBkYXRhYmFzZUFnZW50UHRyKEluc3BlY3RvckRhdGFi
YXNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKKyAgICBhdXRv
IGRhdGFiYXNlQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckRhdGFiYXNlQWdl
bnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSk7CiAgICAgSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudCogZGF0YWJhc2VBZ2VudCA9IGRhdGFiYXNlQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2Vu
dHMuYXBwZW5kKGRhdGFiYXNlQWdlbnRQdHIucmVsZWFzZSgpKTsKKyAgICBtX2FnZW50cy5hcHBl
bmQoc3RkOjptb3ZlKGRhdGFiYXNlQWdlbnRQdHIpKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckluZGV4ZWREQkFn
ZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5nZXQoKSwgcGFnZUFnZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2VBZ2VudCkpOwogI2VuZGlm
CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBkb21TdG9yYWdlQWdlbnRQ
dHIoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBtX3BhZ2VBZ2VudCkpOworICAgIGF1dG8gZG9tU3RvcmFnZUFnZW50UHRyID0gc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCog
ZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOwotICAgIG1fYWdlbnRz
LmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVsZWFzZSgpKTsKKyAgICBtX2FnZW50cy5hcHBl
bmQoc3RkOjptb3ZlKGRvbVN0b3JhZ2VBZ2VudFB0cikpOwogCi0gICAgT3duUHRyPEluc3BlY3Rv
ck1lbW9yeUFnZW50PiBtZW1vcnlBZ2VudFB0cihJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRl
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSkpOworICAgIGF1dG8gbWVtb3J5QWdlbnRQdHIg
PSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvck1lbW9yeUFnZW50PihtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCkpOwogICAgIG1fbWVtb3J5QWdlbnQgPSBtZW1vcnlBZ2VudFB0ci5nZXQoKTsK
LSAgICBtX2FnZW50cy5hcHBlbmQobWVtb3J5QWdlbnRQdHIucmVsZWFzZSgpKTsKKyAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptb3ZlKG1lbW9yeUFnZW50UHRyKSk7CiAKLSAgICBtX2FnZW50cy5h
cHBlbmQoSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgcGFnZUFnZW50LCBtX21lbW9yeUFnZW50LCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpQYWdlSW5zcGVjdG9yLAotICAgICAgIGluc3BlY3RvckNsaWVudCkpOwotICAgIG1fYWdlbnRz
LmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6
Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgcGFnZUFnZW50LCBtX21lbW9yeUFnZW50LCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpQYWdlSW5zcGVjdG9yLCBpbnNwZWN0b3JDbGllbnQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50KSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudD4gcmVzb3VyY2VBZ2VudFB0cihJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIGluc3BlY3RvckNs
aWVudCkpOworICAgIGF1dG8gcmVzb3VyY2VBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdl
bnQsIGluc3BlY3RvckNsaWVudCk7CiAgICAgbV9yZXNvdXJjZUFnZW50ID0gcmVzb3VyY2VBZ2Vu
dFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQocmVzb3VyY2VBZ2VudFB0ci5yZWxlYXNl
KCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUocmVzb3VyY2VBZ2VudFB0cikpOwog
Ci0gICAgT3duUHRyPEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gcnVudGltZUFnZW50UHRyKFBhZ2VS
dW50aW1lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdlLCBwYWdlQWdlbnQpKTsKKyAgICBhdXRvIHJ1bnRp
bWVBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZVJ1bnRpbWVBZ2VudD4obV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwg
cGFnZUFnZW50KTsKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IHJ1
bnRpbWVBZ2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQocnVudGltZUFnZW50UHRy
LnJlbGVhc2UoKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShydW50aW1lQWdlbnRQ
dHIpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+IGNvbnNvbGVBZ2VudFB0
cihQYWdlQ29uc29sZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBt
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9kb21BZ2VudCkpOworICAgIGF1dG8gY29u
c29sZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUFnZW50PihtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2Rv
bUFnZW50KTsKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGNvbnNv
bGVBZ2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoY29uc29sZUFnZW50UHRyLnJl
bGVhc2UoKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShjb25zb2xlQWdlbnRQdHIp
KTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIE93blB0cjxJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50PiBkZWJ1Z2dlckFnZW50UHRyKFBhZ2VEZWJ1Z2dlckFnZW50OjpjcmVh
dGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpLCBtX292ZXJsYXkuZ2V0KCkpKTsKKyAgICBhdXRvIGRlYnVnZ2VyQWdl
bnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VEZWJ1Z2dlckFnZW50PihtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCks
IG1fb3ZlcmxheS5nZXQoKSk7CiAgICAgbV9kZWJ1Z2dlckFnZW50ID0gZGVidWdnZXJBZ2VudFB0
ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoZGVidWdnZXJBZ2VudFB0ci5yZWxlYXNlKCkp
OworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZGVidWdnZXJBZ2VudFB0cikpOwogCi0g
ICAgT3duUHRyPEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+IGRvbURlYnVnZ2VyQWdlbnRQdHIo
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9kb21BZ2VudCwgbV9kZWJ1Z2dlckFnZW50KSk7CisgICAgYXV0byBkb21EZWJ1Z2dl
ckFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Piht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fZG9tQWdlbnQsIG1fZGVidWdnZXJBZ2VudCk7
CiAgICAgbV9kb21EZWJ1Z2dlckFnZW50ID0gZG9tRGVidWdnZXJBZ2VudFB0ci5nZXQoKTsKLSAg
ICBtX2FnZW50cy5hcHBlbmQoZG9tRGVidWdnZXJBZ2VudFB0ci5yZWxlYXNlKCkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZG9tRGVidWdnZXJBZ2VudFB0cikpOwogCi0gICAgT3du
UHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IHByb2ZpbGVyQWdlbnRQdHIoSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFn
ZW50LCBwYWdlLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIGF1dG8gcHJv
ZmlsZXJBZ2VudFB0ciA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFnZSwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuZ2V0KCkpOwogICAgIG1fcHJvZmlsZXJBZ2VudCA9IHByb2ZpbGVyQWdlbnRQdHIuZ2V0
KCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHByb2ZpbGVyQWdlbnRQdHIucmVsZWFzZSgpKTsKKyAg
ICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKHByb2ZpbGVyQWdlbnRQdHIpKTsKIAotICAgIG1f
YWdlbnRzLmFwcGVuZChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAg
ICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci5nZXQoKSkpOwogI2VuZGlmCiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yV29ya2Vy
QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKKyAgICBtX2FnZW50
cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JXb3JrZXJBZ2VudD4obV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpKSk7CiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDYW52YXNBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBwYWdlQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAKLSAg
ICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySW5wdXRBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgcGFnZSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2Vf
dW5pcXVlPEluc3BlY3RvcklucHV0QWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
cGFnZSkpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIG1fYWdlbnRz
LmFwcGVuZChJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3Bl
Y3RvckxheWVyVHJlZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKICNlbmRp
ZgogCiAgICAgQVNTRVJUKG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5jb21tYW5kTGluZUFQSUhv
c3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmlu
ZGV4IGE3Mjg1ZjliNDZjMTJmYWM3ZDkxZTMzZDBhZmM5NmE2OGM5MDVlNWUuLjM5MWRkNzM0OGUy
NzllNGIwNWQ2ZTUzYjlmZGRkZjQzZWE1ZWEyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMDYsMTUgKzEwNiwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQqKSA9IDA7CiAgICAg
fTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50
KiBwYWdlQWdlbnQsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNj
cmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IHBhZ2VBZ2VudCwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBvdmVybGF5KSk7Ci0gICAgfQorICAg
IEluc3BlY3RvckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdl
bnQqLCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rvck92ZXJsYXkq
KTsKKyAgICB+SW5zcGVjdG9yRE9NQWdlbnQoKTsKIAogICAgIHN0YXRpYyBTdHJpbmcgdG9FcnJv
clN0cmluZyhjb25zdCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB+SW5zcGVjdG9yRE9NQWdlbnQo
KTsKLQogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKCkgT1ZFUlJJREU7CiAKQEAgLTIxNSw4ICsyMTEsNiBAQCBwdWJsaWM6
CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQoKSB7IHJldHVybiBtX3BhZ2VBZ2Vu
dDsgfQogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdl
ciosIEluc3BlY3Rvck92ZXJsYXkqKTsKLQogICAgIHZvaWQgc2V0U2VhcmNoaW5nRm9yTm9kZShF
cnJvclN0cmluZyosIGJvb2wgZW5hYmxlZCwgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QqIGhp
Z2hsaWdodENvbmZpZyk7CiAgICAgUGFzc093blB0cjxIaWdobGlnaHRDb25maWc+IGhpZ2hsaWdo
dENvbmZpZ0Zyb21JbnNwZWN0b3JPYmplY3QoRXJyb3JTdHJpbmcqLCBJbnNwZWN0b3I6Okluc3Bl
Y3Rvck9iamVjdCogaGlnaGxpZ2h0SW5zcGVjdG9yT2JqZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4
IDdiZDVmMTJiYjhhZWQ2NDExZWE3YzkwYzdhMWEwNDkwZTA4ODMwOGMuLmQ5ODMxZmMwOGFmNmI0
NjA4NzE4Mjg4YWEwZjVhOTQ4MjBhMDVkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTY0LDExICs2NCw2
IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UGFzc093blB0cjxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiBJbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1
Z2dlckFnZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBkb21BZ2VudCwgZGVidWdnZXJBZ2VudCkpOwot
fQotCiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckRPTUFn
ZW50KiBkb21BZ2VudCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCkKICAg
ICA6IEluc3BlY3RvckFnZW50QmFzZShBU0NJSUxpdGVyYWwoIkRPTURlYnVnZ2VyIiksIGluc3Ry
dW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX2RvbUFnZW50KGRvbUFnZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXgg
MjlhMmZhY2RhMjBkOGYyZGNhMzgzM2Q0MzQ5ZTFmZTM5MTY1ZGUxMi4uMzBjNjc3MzJhODE0MGUz
ZTRjNzQ2ZWE1YmRhNjg0MTllN2VlMDA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC01OCw4ICs1OCw3IEBAIHR5
cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpMaXN0ZW5lciwgcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRE9NRGVidWdnZXJCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yRE9NQWdlbnQqLCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Kik7Ci0KKyAgICBJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JET01BZ2VudCos
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50KCk7CiAKICAgICAvLyBET01EZWJ1Z2dlciBBUEkKQEAgLTg3LDggKzg2LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNjYXJkQWdlbnQoKTsKIAogcHJpdmF0ZToKLSAg
ICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0
b3JET01BZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqKTsKLQogICAgIC8vIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6Okxpc3RlbmVyIGltcGxlbWVudGF0aW9uLgogICAgIHZpcnR1YWwgdm9p
ZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVidWdnZXJXYXNEaXNh
YmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudC5oCmluZGV4IGZiZWEwMWQ2ZWNhNTIxOGU0NWRkZTAzMGRjMGI2Yjg0ODIzNWNh
Y2YuLmI0NzJiNmVkYjM5ZWQxNGM1YTdjMTU4N2U3ZTA0ZmY0ODQyZmUwN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKQEAg
LTU0LDEwICs1NCw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMg
SW5zcGVjdG9yOjpJbnNwZWN0b3JET01TdG9yYWdlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2Vu
dCkpOwotICAgIH0KKyAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCopOwogICAgIH5JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgT1ZFUlJJREU7CkBAIC03OCw5ICs3NSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwg
U2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7CiAKIHByaXZhdGU6Ci0KLSAgICBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCopOwot
CiAgICAgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5n
KiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiYsIEZyYW1lKiYpOwog
CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCmluZGV4IDQ0MTJiZTI5M2I5
NjQzNDZmMTJkODQzZmQzMjY5NjA3YWJkODlkMDIuLmVlNWFhNmEwYmIyMjA5NzIyYzU0N2JhYTNi
Y2FjNGQ1OWU5NDMyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRhdGFiYXNlQWdlbnQuaApAQCAtNTIsMTAgKzUyLDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJy
b3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckRhdGFiYXNlQWdlbnQgOiBwdWJsaWMgSW5zcGVj
dG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmRE
aXNwYXRjaGVySGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yRGF0YWJhc2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRh
dGFiYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cykpOwotICAgIH0KKyAgICBleHBsaWNpdCBJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICB+SW5zcGVj
dG9yRGF0YWJhc2VBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rv
cjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBPVkVSUklERTsKQEAgLTc0LDggKzcxLDYg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRPcGVuRGF0YWJhc2UoUGFzc1JlZlB0cjxEYXRhYmFz
ZT4sIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbik7CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEluc3BlY3RvckRhdGFiYXNlQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyopOwotCiAgICAgRGF0YWJhc2UqIGRhdGFiYXNlRm9ySWQo
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkKTsKICAgICBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNl
KiBmaW5kQnlGaWxlTmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAK
aW5kZXggYzc0NDRkMmZkODc5NTQyZTcyNjNiN2QwN2ExMDE2NTQyODYzZThkMC4uZTIyMDY2OWNi
MzJhYzM4NWRmMDg0ZDk4MjE5NmEwODMyNzBiMDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCkBAIC00NSwx
MSArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25z
dCBVc2VySW5pdGlhdGVkUHJvZmlsZU5hbWVIZWFwID0gIm9yZy53ZWJraXQucHJvZmlsZXMudXNl
ci1pbml0aWF0ZWQiOwogCi1QYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwot
fQotCiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZUluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIDogSW5zcGVjdG9yQWdl
bnRCYXNlKEFTQ0lJTGl0ZXJhbCgiSGVhcFByb2ZpbGVyIiksIGluc3RydW1lbnRpbmdBZ2VudHMp
CiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5oCmluZGV4IDIxMmZkYmJhYmQ1ZGRmZTYzNTEwM2Y0M2MzNmM4OTViZTQ3OWI4OWUuLmVh
MzU2NTRjMTlkNjE0NTA2YzMxYTIzMTNiMTIyYWZiYWI5NmFjODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCkBAIC01
Myw3ICs1Myw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5z
cGVjdG9yOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFn
ZUluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAg
dmlydHVhbCB+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0cmluZyopOwpAQCAtNzUsOCArNzUsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGdldEhlYXBPYmplY3RJZChFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgb2JqZWN0SWQsIFN0cmluZyogaGVhcFNuYXBzaG90T2JqZWN0SWQpOwogCiBwcml2YXRl
OgotICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQ
YWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7Ci0KICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWdu
ZWQsIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+PiBJZFRvSGVhcFNuYXBzaG90TWFwOwogCiAg
ICAgdm9pZCByZXNldEZyb250ZW5kUHJvZmlsZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKaW5kZXggYWEwZTU2ZTVmYTYyY2Nk
MjdhNzk1NWQ5MjA0ODc0MTQ2NmQ4NmQyNS4uM2MzOTg2MzZjMmNhYTlmZjFmZTYxYWQ3NTY3YjYz
ZThjODIyNWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmgKQEAgLTUwLDEwICs1MCw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9y
U3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckluZGV4ZWREQkJhY2tlbmRE
aXNwYXRjaGVySGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoaW5zdHJ1bWVudGlu
Z0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBwYWdlQWdlbnQpKTsKLSAgICB9CisgICAg
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CiAgICAgfkluc3Bl
Y3RvckluZGV4ZWREQkFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwpAQCAtNjgsOCArNjUs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGluX3NlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGluX2Rh
dGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBpbl9vYmplY3RTdG9yZU5hbWUsIFBhc3NSZWZQdHI8
Q2xlYXJPYmplY3RTdG9yZUNhbGxiYWNrPik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7Ci0KICAgICBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAgICAgSW5zcGVjdG9y
UGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JJ
bmRleGVkREJCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCmluZGV4IGEyMDkxMTM4
ZjM2MWFmNTc5M2VkZWRmOGQ2NTRkOTQyZTNiMTk5OTguLmY2OTgzNmIwYzhjYmFlZDIyODllZjY1
YzQ2MjM0OGZmNzVhZGYzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnB1dEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvcklucHV0QWdlbnQuaApAQCAtNDcsMTEgKzQ3LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JT
dHJpbmc7CiBjbGFzcyBJbnNwZWN0b3JJbnB1dEFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50
QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9ySW5wdXRCYWNrZW5kRGlzcGF0Y2hlckhh
bmRsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvcklucHV0QWdlbnQpOwog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvcklucHV0QWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JJbnB1dEFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIHBhZ2UpKTsKLSAgICB9Ci0KKyAgICBJbnNwZWN0b3JJbnB1dEFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKik7CiAgICAgfkluc3BlY3RvcklucHV0QWdl
bnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgT1ZFUlJJREU7CkBAIC02Miw4ICs1OCw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBpbnQgeCwgaW50IHksIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3Vi
bGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0IGludCogY2xpY2tDb3Vu
dCk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9ySW5wdXRBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgUGFnZSopOwotCiAgICAgUGFnZSogbV9wYWdlOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6
Okluc3BlY3RvcklucHV0QmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQuaAppbmRleCAzNjRlOWZmNWY4MzY0MGQ4YmFmMzI4OGQzMmRiMGMxMzlkZTgzMWNiLi5jYzNi
YjkxMjhmNTNkYTEwOGIxZTAzMDQ4NzBmNjZlZjFjYzg4MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaApAQCAtNDksMTAgKzQ5
LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckxheWVy
VHJlZUFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6
SW5zcGVjdG9yTGF5ZXJUcmVlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckxheWVyVHJlZUFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMpKTsKLSAgICB9CisgICAgZXhwbGljaXQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyopOwogICAgIH5JbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIqKSBPVkVSUklERTsKQEAgLTcwLDggKzY3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllcihFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
bGF5ZXJJZCwgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6Q29tcG9z
aXRpbmdSZWFzb25zPiYpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckxheWVyVHJlZUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKLQogICAgIC8vIFJlbmRlckxheWVyLXJlbGF0ZWQgbWV0
aG9kcy4KICAgICBTdHJpbmcgYmluZChjb25zdCBSZW5kZXJMYXllciopOwogICAgIHZvaWQgdW5i
aW5kKGNvbnN0IFJlbmRlckxheWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAppbmRleCAyNTZiZmI1ZWIyZjlmMjljYzI5OWE5M2Jh
ODVlNGQ3ZDNhYTI0MmVkLi5iNzRjMzUzMzBhZDQ3N2IwNzczYzA1ZDI3ZDYwZjkzZGE5NzNlNmFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHAKQEAgLTkwLDExICs5MCw2IEBAIEluc3BlY3Rvck1lbW9yeUFnZW50OjpJbnNwZWN0b3JN
ZW1vcnlBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlCiB7CiB9CiAK
LVBhc3NPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IEluc3BlY3Rvck1lbW9yeUFnZW50Ojpj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3Rvck1lbW9yeUFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFn
ZW50LmgKaW5kZXggMmEyZmE2YjJiNDFmOTIxZDg1MzcyN2JmYmJjMDAxZjQ3YTA3YWI5OS4uZTQ1
NGZmMGU1YzE5ZjFkZjk4NzZlMjVjMWJmNmQ0NzhkNjQ2ODkwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJbnNwZWN0b3JNZW1vcnlBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3Rvck1l
bW9yeUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
SW5zcGVjdG9yTWVtb3J5QWdlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElu
c3BlY3Rvck1lbW9yeUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyk7CisgICAgZXhwbGljaXQgSW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyopOwogICAgIHZpcnR1YWwgfkluc3BlY3Rvck1lbW9yeUFnZW50KCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlciopIE9WRVJSSURFOwpAQCAtNTcsOCArNTcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldERPTUNvdW50ZXJzKEVycm9yU3RyaW5nKiwgaW50KiBkb2N1bWVudHMsIGludCogbm9k
ZXMsIGludCoganNFdmVudExpc3RlbmVycyk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yTWVt
b3J5QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyopOwotCiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6
SW5zcGVjdG9yTWVtb3J5QmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CmluZGV4IGRhZjE0MjkzNTlhNDUwMThkMGRiZTRhNWI3NmVhYjVhNmIxZDZkYzQuLmNmN2IxYmE2
Yzg2MTA3N2NkY2VjNmU0MzRhZWMwODgwNzExNzdmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0yMjUsMTEgKzIyNSw2IEBAIGJv
b2wgSW5zcGVjdG9yUGFnZUFnZW50OjpkYXRhQ29udGVudChjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBzaXplLCBjb25zdCBTdHJpCiAgICAgcmV0dXJuIGRlY29kZUJ1ZmZlcihkYXRhLCBzaXpl
LCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1bHQpOwogfQogCi1QYXNzT3duUHRyPEluc3BlY3RvclBh
Z2VBZ2VudD4gSW5zcGVjdG9yUGFnZUFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQs
IEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJ
bnNwZWN0b3JQYWdlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZSwgY2xpZW50LCBvdmVy
bGF5KSk7Ci19Ci0KIC8vIHN0YXRpYwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNl
Q29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwsIFN0cmluZyogcmVzdWx0LCBib29sKiBiYXNlNjRFbmNvZGVkKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGExMzA3ZTI2MDE0
NTQ0OGZmZGE3NzkxN2I4MmIyOGJmZmVhZWViNTEuLjEzMzliYzBhMGRhOTM4MWQyMTlmODk1MTFl
NzVlMGJkMzFiODg5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmgKQEAgLTcwLDYgKzcwLDggQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7
CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBw
dWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JQYWdlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQYWdlQWdlbnQpOwogcHVibGljOgor
ICAgIEluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIEluc3Bl
Y3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKKwogICAgIGVudW0gUmVzb3VyY2VUeXBl
IHsKICAgICAgICAgRG9jdW1lbnRSZXNvdXJjZSwKICAgICAgICAgU3R5bGVzaGVldFJlc291cmNl
LApAQCAtODEsOCArODMsNiBAQCBwdWJsaWM6CiAgICAgICAgIE90aGVyUmVzb3VyY2UKICAgICB9
OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0b3JPdmVy
bGF5Kik7Ci0KICAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVz
b3VyY2UqLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAgICAgc3RhdGlj
IGJvb2wgc2hhcmVkQnVmZmVyQ29udGVudChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0
IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSwgYm9vbCB3aXRoQmFzZTY0RW5jb2RlLCBTdHJpbmcq
IHJlc3VsdCk7CiAgICAgc3RhdGljIHZvaWQgcmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwg
RnJhbWUqLCBjb25zdCBVUkwmLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7
CkBAIC0xNjMsNyArMTYzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBEb2N1bWVudExvYWRlciog
YXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcqLCBGcmFtZSopOwogCiBwcml2YXRlOgot
ICAgIEluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIEluc3Bl
Y3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogICAgIHZvaWQgdXBkYXRlVG91Y2hFdmVudEVtdWxhdGlvbkluUGFnZShib29sKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuY3BwCmluZGV4IGNjODMwMjJhNzM2MmQwZWMwY2ZjZmFkZmRjNmFiNjZmMzUwMGMwODYuLmI5
NmJmZGNjYmUxOWJlNWIwYTgxYTE5NjFkODRmYmQ2NDIxZmZkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTg5LDkg
Kzg5LDkgQEAgcHJpdmF0ZToKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CiB9OwogCi1QYXNz
T3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgUGFnZUluamVj
dGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorc3RkOjp1bmlxdWVfcHRy
PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xl
QWdlbnQqIGNvbnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgUGFnZUluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgUGFnZVByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50
LCBpbnNwZWN0ZWRQYWdlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQYWdlUHJvZmlsZXJBZ2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
c29sZUFnZW50LCBpbnNwZWN0ZWRQYWdlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpOwogfQogCiBj
bGFzcyBXb3JrZXJQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvclByb2ZpbGVyQWdlbnQg
ewpAQCAtMTE2LDkgKzExNiw5IEBAIHByaXZhdGU6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUqIG1f
d29ya2VyR2xvYmFsU2NvcGU7CiB9OwogCi1QYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwg
V29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlLCBQYWdlSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
UHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29u
c29sZUFnZW50LCBXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIFBhZ2VJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKIHsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFdvcmtlclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
c29sZUFnZW50LCB3b3JrZXJHbG9iYWxTY29wZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyUHJvZmlsZXJBZ2VudD4oaW5zdHJ1bWVu
dGluZ0FnZW50cywgY29uc29sZUFnZW50LCB3b3JrZXJHbG9iYWxTY29wZSwgaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKTsKIH0KIAogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmgKaW5kZXggZTgxZmJkM2IwNTdmYjFiYmZiOGM0OGIxN2E2
ZWMyNDU3NDc1Mjg0Ni4uOThiMDcyODAyODkyODRjMzRmOWNjNzBiYzgzODI2NTM0YmYzMjZjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5oCkBAIC02MSw4ICs2MSw4IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3Mg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1Ymxp
YyBJbnNwZWN0b3I6Okluc3BlY3RvclByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQcm9maWxlckFnZW50KTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQqLCBQYWdlKiwgUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlciopOwotICAgIHN0
YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgV29ya2VyR2xvYmFsU2NvcGUqLCBQ
YWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
bnNwZWN0b3JQcm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudCosIFBhZ2UqLCBQYWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIFdvcmtlckdsb2Jh
bFNjb3BlKiwgUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlciopOwogCiAgICAgdmlydHVhbCB+SW5z
cGVjdG9yUHJvZmlsZXJBZ2VudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaAppbmRleCA1OTgzODc0MmJlNWRiZDM1ZDU2NDlhY2Iz
Mjc3YmM4MDIyMjhmYmY3Li4xNDZiMTA5YTk5ZTFlMDRkMDEyZDg2MmVjMGY4YjBiYWUwNmFmZjJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgKQEAgLTc3LDExICs3Nyw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCiBj
bGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVySGFuZGxl
ciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIGNsaWVudCkpOwotICAgIH0KLQorICAgIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2Vu
dCosIEluc3BlY3RvckNsaWVudCopOwogICAgIH5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlciopIE9WRVJSSURFOwpAQCAtMTQzLDggKzEzOSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q2FjaGVEaXNhYmxlZChFcnJvclN0cmluZyosIGJvb2wgY2FjaGVEaXNhYmxl
ZCk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ2xpZW50Kik7Ci0KICAgICB2
b2lkIGVuYWJsZSgpOwogCiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmlu
ZGV4IGVmMGIxNjM2NTdlY2U1ZTE2N2MwZTcyZjM3MmY5MWQwOWE3YzMwZmIuLjNhMTk1YWRjN2Mx
ODA5MjdjZjAwMGMxMDhmNjBhNjliYzFkYmY4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTI4LDExICsxMjgsNyBAQCBj
bGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50CiBwdWJsaWM6CiAgICAgZW51bSBJbnNwZWN0b3JU
eXBlIHsgUGFnZUluc3BlY3RvciwgV29ya2VySW5zcGVjdG9yIH07CiAKLSAgICBzdGF0aWMgUGFz
c093blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIElu
c3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlBZ2VudCwgSW5zcGVjdG9yVHlwZSB0eXBlLCBJbnNw
ZWN0b3JDbGllbnQqIGNsaWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIG1l
bW9yeUFnZW50LCB0eXBlLCBjbGllbnQpKTsKLSAgICB9Ci0KKyAgICBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0
b3JNZW1vcnlBZ2VudCosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVudCopOwogICAgIH5J
bnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5z
cGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwpAQCAtMjMyLDgg
KzIyOCw2IEBAIHByaXZhdGU6CiAgICAgICAgIHNpemVfdCB1c2VkSGVhcFNpemVBdFN0YXJ0Owog
ICAgIH07CiAKLSAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JNZW1vcnlBZ2VudCosIEluc3BlY3RvclR5
cGUsIEluc3BlY3RvckNsaWVudCopOwotCiAgICAgdm9pZCBzZW5kRXZlbnQoUGFzc1JlZlB0cjxJ
bnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4pOwogICAgIHZvaWQgYXBwZW5kUmVjb3JkKFBhc3NS
ZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlw
ZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSopOwogICAgIHZvaWQgcHVzaEN1cnJlbnRS
ZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4sIFRpbWVsaW5lUmVj
b3JkVHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggZTZjZWZkNGFl
Mzc1MjNiOGNlMGQxMzE4NjBhYzRmOThhNGU5NDM5Ni4uYWY5ZTg2Y2ViNWQ2MGQ1NDg3MDcyMWI0
NzBiNmE4N2E5NmEwOGY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0xMDMsMTEgKzEwMyw2IEBAIHByaXZhdGU6CiAKIGlu
dCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpzX25leHRJZCA9
IDE7CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yV29ya2VyQWdlbnQ+IEluc3BlY3RvcldvcmtlckFn
ZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvcldvcmtlckFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMpKTsKLX0KLQogSW5zcGVjdG9yV29ya2VyQWdlbnQ6Okluc3BlY3RvcldvcmtlckFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgOiBJbnNw
ZWN0b3JBZ2VudEJhc2UoQVNDSUlMaXRlcmFsKCJXb3JrZXIiKSwgaW5zdHJ1bWVudGluZ0FnZW50
cykKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5kZXggOTE5NjIyNDRiYzM0ZGZmN2MwZTg2ZmUxYTc0
NzZjOGQ5ZjQwNzBiZS4uMmFiMjJkZDZkZWQyN2ExZjRkYTU5MGJlNTE5YjFmZGJiZTkxNjg5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgK
QEAgLTUwLDcgKzUwLDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIElu
c3BlY3RvcldvcmtlckFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIElu
c3BlY3Rvcjo6SW5zcGVjdG9yV29ya2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JXb3JrZXJBZ2VudD4gY3JlYXRlKElu
c3RydW1lbnRpbmdBZ2VudHMqKTsKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JXb3JrZXJBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgfkluc3BlY3RvcldvcmtlckFnZW50KCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlciopIE9WRVJSSURFOwpAQCAtNzEsNyArNzEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEF1dG9jb25uZWN0VG9Xb3JrZXJzKEVycm9yU3RyaW5nKiwgYm9vbCB2YWx1ZSk7CiAK
IHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yV29ya2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyop
OwogICAgIHZvaWQgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsc0ZvckV4aXN0aW5nV29ya2Vy
cygpOwogICAgIHZvaWQgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKFdvcmtlckdsb2JhbFNj
b3BlUHJveHkqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkZXN0cm95V29ya2VyRnJv
bnRlbmRDaGFubmVscygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFn
ZW50LmgKaW5kZXggZjE4NGE3OTZjZDAxNWE5MzBkZDkwNWNiMjViZDYzODEyNDY3M2MxZC4uOWE5
YmNkM2UwOWZjMmRiNWUwOTAyMzkwMDBjNTIzYzk1NTIzMzY3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCkBAIC00MywxNiArNDMsMTIgQEAgY2xhc3Mg
SW5zcGVjdG9yRE9NQWdlbnQ7CiBjbGFzcyBQYWdlQ29uc29sZUFnZW50IDogcHVibGljIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbnNvbGVB
Z2VudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZUNvbnNvbGVBZ2VudD4g
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhZ2VJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yRE9NQWdl
bnQqIGRvbUFnZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ29u
c29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgZG9t
QWdlbnQpKTsKLSAgICB9CisgICAgUGFnZUNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3RvckRPTUFnZW50Kik7CiAgICAg
dmlydHVhbCB+UGFnZUNvbnNvbGVBZ2VudCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzV29ya2Vy
QWdlbnQoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIFBhZ2VD
b25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqLCBJbnNwZWN0b3JET01BZ2VudCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck1lc3NhZ2Vz
KEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJyb3JT
dHJpbmcqLCBpbnQgbm9kZUlkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYzhjMWRmZjZjNzMwM2ZmYTY5YjEyOGRkNzI0OTVhNjg5
MDk2NjRkNS4uYmNiMzRmNDk1YzNiOGNjMGVmNDBlNGU5ZTQ1OWE3MjRjNmQ1MjZjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00OCwx
MSArNDgsNiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NPd25QdHI8UGFnZURlYnVnZ2VyQWdlbnQ+IFBhZ2VEZWJ1Z2dlckFnZW50Ojpj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
UGFnZUFnZW50KiBwYWdlQWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLCBJbnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQotewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgUGFnZURlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIG92ZXJsYXkpKTsKLX0KLQogUGFnZURlYnVnZ2VyQWdl
bnQ6OlBhZ2VEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKICAg
ICA6IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAppbmRleCA3NTE4Mzk0ZGFmMmE4ZWUz
NTU3ZTY1OWVhNTY1NGFjODc3NzY1M2JjLi5hNDRlNjUyYTY5ZTU0ZjYzNjU5ZGQ5MDkxMWFmZDMw
NTRhMWU4MmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVn
Z2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdl
bnQuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlRGVi
dWdnZXJBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8UGFnZURlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1h
bmFnZXIqLCBJbnNwZWN0b3JPdmVybGF5Kik7CisgICAgUGFnZURlYnVnZ2VyQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rvcjo6SW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yT3ZlcmxheSopOwogICAgIHZpcnR1YWwgflBhZ2VEZWJ1
Z2dlckFnZW50KCk7CiAKICAgICB2b2lkIGRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0KCk7
CkBAIC02Niw3ICs2Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3ZlcmxheU1lc3NhZ2Uo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcqKTsKIAotICAgIFBhZ2VEZWJ1Z2dlckFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rvck92ZXJsYXkqKTsKICAgICBJbnNwZWN0b3JQYWdl
QWdlbnQqIG1fcGFnZUFnZW50OwogICAgIEluc3BlY3Rvck92ZXJsYXkqIG1fb3ZlcmxheTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCA3NmEw
NGMxOWI0ODRkMjg4ZmEwMmYyYTRhMjBhMDQ1ZWI5ZmMzNGE0Li44MmQ0ZTU0ZWI2Zjk1MmE3ZGFl
OTE5OTkzM2NhNGEwYmZmNDIyYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmgKQEAgLTUwLDExICs1MCw5IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
CiBjbGFzcyBQYWdlUnVudGltZUFnZW50IDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVJ1bnRpbWVBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rvcjo6SW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2Ny
aXB0TWFuYWdlciwgcGFnZSwgcGFnZUFnZW50KSk7Ci0gICAgfQorICAgIFBhZ2VSdW50aW1lQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiwgUGFnZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOwogICAgIHZpcnR1YWwgflBhZ2VSdW50aW1l
QWdlbnQoKTsKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcqKTsKQEAgLTY0LDggKzYyLDYgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KEZyYW1lKiwgSlNDOjpFeGVjU3RhdGUqLCBTZWN1cml0
eU9yaWdpbiopOwogCiBwcml2YXRlOgotICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIEluc3Bl
Y3RvclBhZ2VBZ2VudCopOwotCiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkKTsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgdW5tdXRlQ29uc29sZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckNvbnNvbGVBZ2VudC5oCmluZGV4IDRkZmZkZmI2ZTg3NmIwZWI4ZjI4YTVjMDI5MjdlY2FmYjZj
NjNjZDEuLjNjOTkxYWVkNWQ5YTNkODNmMzRhNTIxMmU0YmJjY2U0YmI3ZGU2OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgKQEAgLTQxLDE2ICs0
MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXb3JrZXJDb25zb2xlQWdlbnQgOiBw
dWJsaWMgSW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
b3JrZXJDb25zb2xlQWdlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtl
ckNvbnNvbGVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyQ29uc29sZUFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwotICAgIH0KKyAgICBX
b3JrZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2VJbmplY3RlZFNjcmlw
dE1hbmFnZXIqKTsKICAgICB2aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQWdlbnQoKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc1dvcmtlckFnZW50KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBw
cml2YXRlOgotICAgIFdvcmtlckNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFn
ZUluamVjdGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWRO
b2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMmU3YTAwYmE4OTBkZjY2
NTQ3ZjgzZDE2NDE5ZDA4YTJjMTUyZmQwMC4uYTBiNDEyYmQ4MDIyZjMwM2I4NGEzYTc4NjdlMThm
N2MwOGJmOTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRl
YnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1
Z2dlckFnZW50LmNwcApAQCAtODQsMTEgKzg0LDYgQEAgcHJpdmF0ZToKIAogY29uc3QgY2hhciog
V29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSA9ICJkZWJ1Z2dlciI7CiAKLVBh
c3NPd25QdHI8V29ya2VyRGVidWdnZXJBZ2VudD4gV29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFdvcmtlckdsb2JhbFNj
b3BlKiBpbnNwZWN0ZWRXb3JrZXJHbG9iYWxTY29wZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBp
bmplY3RlZFNjcmlwdE1hbmFnZXIpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJE
ZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RlZFdvcmtlckdsb2JhbFNj
b3BlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKLX0KLQogV29ya2VyRGVidWdnZXJBZ2VudDo6
V29ya2VyRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBXb3JrZXJHbG9iYWxTY29wZSogaW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUsIEluamVj
dGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIDogSW5zcGVjdG9y
RGVidWdnZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIp
CiAgICAgLCBtX3NjcmlwdERlYnVnU2VydmVyKGluc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLCBX
b3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggOTE5NDE2MGVhMGM3ZTBjZGE5
NTYwMTM0MzhlOWZhMWEzN2FkOTRmYy4uM2ZmMGM5YTczZjUwNzA3NTQxZjk2Y2EzM2YzMWIyY2Vl
NzRhMjdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVn
Z2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5oCkBAIC00NCwyMiArNDQsMjAgQEAgY2xhc3MgV29ya2VyRGVidWdnZXJBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
b3JrZXJEZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyosIFdvcmtlckdsb2JhbFNjb3BlKiwgSW5zcGVjdG9yOjpJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqLCBXb3JrZXJHbG9iYWxTY29wZSosIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKik7CiAgICAgdmlydHVhbCB+V29ya2VyRGVidWdnZXJBZ2VudCgpOwogCiAgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGRlYnVnZ2VyVGFza01vZGU7CiAgICAgc3RhdGljIHZvaWQgaW50ZXJydXB0
QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5kcyhXb3JrZXJUaHJlYWQqKTsKIAotcHJpdmF0ZToK
LSAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBXb3JrZXJHbG9i
YWxTY29wZSosIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpOwotICAgIHZpcnR1YWwg
dm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKTsKLSAgICB2aXJ0dWFsIFdvcmtl
clNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpOwotICAgIHZpcnR1YWwgSW5z
cGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcq
LCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7Ci0gICAgdmlydHVhbCB2b2lkIG11dGVD
b25zb2xlKCk7Ci0gICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSBPVkVSUklERTsKIAorcHJpdmF0ZToKICAgICBX
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlciBtX3NjcmlwdERlYnVnU2VydmVyOwogICAgIFdvcmtlckds
b2JhbFNjb3BlKiBtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApp
bmRleCA2NDgxYTgxMTg0ZDI5ZjhmYjcxYmFkMzQ3NGU2ZDVkY2E0MWM1NTBiLi5jOGU0MTQwOWFj
MTVmYmQyMzZmOTk3NTkwYWFkMzczYTAxZGM4YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC04NSwyMSAr
ODUsMjEgQEAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcihXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2wKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKHN0ZDo6bWFrZV91bmlxdWU8UGFnZUluamVjdGVkU2NyaXB0TWFuYWdlcj4oKnRoaXMs
IFBhZ2VJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZSgpKSkKICAgICAsIG1fcnVudGltZUFnZW50
KDApCiB7Ci0gICAgT3duUHRyPEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gcnVudGltZUFnZW50ID0g
V29ya2VyUnVudGltZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBt
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyR2xvYmFsU2NvcGUpOworICAgIGF1
dG8gcnVudGltZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJSdW50aW1lQWdlbnQ+KG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCks
IHdvcmtlckdsb2JhbFNjb3BlKTsKICAgICBtX3J1bnRpbWVBZ2VudCA9IHJ1bnRpbWVBZ2VudC5n
ZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQocnVudGltZUFnZW50LnJlbGVhc2UoKSk7CisgICAg
bV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShydW50aW1lQWdlbnQpKTsKIAotICAgIE93blB0cjxJ
bnNwZWN0b3JDb25zb2xlQWdlbnQ+IGNvbnNvbGVBZ2VudCA9IFdvcmtlckNvbnNvbGVBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIuZ2V0KCkpOworICAgIGF1dG8gY29uc29sZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3Jr
ZXJDb25zb2xlQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIuZ2V0KCkpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAg
IE93blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBkZWJ1Z2dlckFnZW50ID0gV29ya2VyRGVi
dWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgd29ya2VyR2xv
YmFsU2NvcGUsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKKyAgICBhdXRvIGRlYnVn
Z2VyQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckRlYnVnZ2VyQWdlbnQ+KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgd29ya2VyR2xvYmFsU2NvcGUsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmdldCgpKTsKICAgICBtX3J1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIo
JmRlYnVnZ2VyQWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkpOwotICAgIG1fYWdlbnRzLmFwcGVu
ZChkZWJ1Z2dlckFnZW50LnJlbGVhc2UoKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92
ZShkZWJ1Z2dlckFnZW50KSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50
LmdldCgpLCB3b3JrZXJHbG9iYWxTY29wZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkp
KTsKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIuZ2V0KCkpKTsKICNlbmRpZgotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCAwLCAw
LCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNwZWN0b3IsIDApKTsKLSAgICBtX2Fn
ZW50cy5hcHBlbmQoY29uc29sZUFnZW50LnJlbGVhc2UoKSk7CisgICAgbV9hZ2VudHMuYXBwZW5k
KHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4obV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBudWxscHRyLCBudWxscHRyLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpX
b3JrZXJJbnNwZWN0b3IsIG51bGxwdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3Zl
KGNvbnNvbGVBZ2VudCkpOwogCiAgICAgaWYgKENvbW1hbmRMaW5lQVBJSG9zdCogY29tbWFuZExp
bmVBUElIb3N0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmNvbW1hbmRMaW5lQVBJSG9zdCgp
KSB7CiAgICAgICAgIGNvbW1hbmRMaW5lQVBJSG9zdC0+aW5pdChudWxscHRyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKaW5kZXggMzY2MGFkM2NjZWM4
YWU5ODJiZTMxNDU1MjU5ZTkyYzE2ODIwYTMxNi4uYzllMTZmOTc5YzVkMTFkZWUzYzg4NDY2ZjZk
NzY2ZDhmOWZmZDlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
clJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaApAQCAtNDIsMTAgKzQyLDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiAK
IGNsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlclJ1bnRpbWVBZ2VudD4gY3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFdvcmtlckdsb2Jh
bFNjb3BlKiBjb250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3Jr
ZXJSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LCBjb250ZXh0KSk7Ci0gICAgfQorICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJHbG9iYWxT
Y29wZSopOwogICAgIHZpcnR1YWwgfldvcmtlclJ1bnRpbWVBZ2VudCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBP
VkVSUklERTsKQEAgLTU5LDcgKzU2LDYgQEAgcHVibGljOgogI2VuZGlmIC8vIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQogCiBwcml2YXRlOgotICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3Jr
ZXJHbG9iYWxTY29wZSopOwogICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCk7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CiAgICAgdmlydHVhbCB2
b2lkIHVubXV0ZUNvbnNvbGUoKTsK
</data>
<flag name="review"
          id="244764"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>