<?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>184712</bug_id>
          
          <creation_ts>2018-04-17 15:36:38 -0700</creation_ts>
          <short_desc>Some JSEntryPtrTags should actually be JSInternalPtrTags.</short_desc>
          <delta_ts>2018-04-20 16:30:53 -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>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1415306</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-17 15:36:38 -0700</bug_when>
    <thetext>Address feedback at https://bugs.webkit.org/show_bug.cgi?id=184702#c5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415307</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-17 15:37:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/39507381&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416494</commentid>
    <comment_count>2</comment_count>
      <attachid>338482</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-20 16:09:29 -0700</bug_when>
    <thetext>Created attachment 338482
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416502</commentid>
    <comment_count>3</comment_count>
      <attachid>338482</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-04-20 16:25:11 -0700</bug_when>
    <thetext>Comment on attachment 338482
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416506</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-20 16:30:53 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r230865: &lt;http://trac.webkit.org/r230865&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338482</attachid>
            <date>2018-04-20 16:09:29 -0700</date>
            <delta_ts>2018-04-20 16:25:11 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-184712.patch</filename>
            <type>text/plain</type>
            <size>38053</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMwODYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBA
CisyMDE4LTA0LTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
b21lIEpTRW50cnlQdHJUYWdzIHNob3VsZCBhY3R1YWxseSBiZSBKU0ludGVybmFsUHRyVGFncy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcxMgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk1MDczODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gQ29udmVydCBzb21lIHVzZXMgb2YgSlNFbnRy
eVB0clRhZyBpbnRvIEpTSW50ZXJuYWxQdHJUYWdzLgorICAgICAgICAyLiBUYWcgYWxsIExMSW50
IGJ5dGVjb2RlcyBjb25zaXN0ZW50bHkgd2l0aCBCeXRlY29kZVB0clRhZyBub3cgYW5kIHJldGFn
IHRoZW0KKyAgICAgICAgICAgb25seSB3aGVuIG5lZWRlZC4KKworICAgICAgICAqIGJ5dGVjb2Rl
L0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwp
OgorICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5oOgorICAgICAgICAoSlNDOjpCeVZhbElu
Zm86OkJ5VmFsSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAg
ICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsUmV0dXJuTG9jYXRpb24pOgorICAgICAgICAo
SlNDOjpDYWxsTGlua0luZm86OnBhdGNoYWJsZUp1bXApOgorICAgICAgICAoSlNDOjpDYWxsTGlu
a0luZm86OmhvdFBhdGhCZWdpbik6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2xvd1Bh
dGhTdGFydCk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmg6CisgICAgICAgIChK
U0M6OkNhbGxMaW5rSW5mbzo6c2V0Q2FsbExvY2F0aW9ucyk6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rSW5mbzo6aG90UGF0aE90aGVyKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHA6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKToK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmVTdHViSW5mbzo6ZG9uZUxvY2F0aW9uKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29t
cGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpsaW5rKToKKyAgICAg
ICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVk
Q2FsbEZyYW1lcyk6CisgICAgICAgICogZnRsL0ZUTExhenlTbG93UGF0aC5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6TGF6eVNsb3dQYXRoOjppbml0aWFsaXplKToKKyAgICAgICAgKiBmdGwvRlRM
TGF6eVNsb3dQYXRoLmg6CisgICAgICAgIChKU0M6OkZUTDo6TGF6eVNsb3dQYXRoOjpkb25lIGNv
bnN0KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNhbGxPckNvbnN0cnVjdCk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVEaXJlY3RDYWxsT3JDb25zdHJ1
Y3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlVGFpbENh
bGwpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ2FsbE9y
Q29uc3RydWN0VmFyYXJnc1NwcmVhZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVDYWxsT3JDb25zdHJ1Y3RWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUluKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6bGF6eVNsb3dQYXRoKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjpsaW5rKToKKyAgICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6
CisgICAgICAgIChKU0M6OmdlbmVyaWNVbndpbmQpOgorICAgICAgICAqIGppdC9KSVRNYXRoSUMu
aDoKKyAgICAgICAgKEpTQzo6aXNQcm9maWxlRW1wdHkpOgorICAgICAgICAqIGxsaW50L0xMSW50
RGF0YS5jcHA6CisgICAgICAgIChKU0M6OkxMSW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBs
bGludC9MTEludERhdGEuaDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldENvZGVQdHIpOgorICAg
ICAgICAoSlNDOjpMTEludDo6Z2V0RXhlY3V0YWJsZUFkZHJlc3MpOiBEZWxldGVkLgorICAgICAg
ICAqIGxsaW50L0xMSW50RXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpjYWxs
VG9UaHJvdyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAo
SlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHdhc20vanMvV2Fz
bVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtVG9KUyk6CisKIDIwMTgtMDQtMTgg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgcHV0IGJ1
aWxkIHByb2R1Y3RzIGludG8gV0tfQUxURVJOQVRFX1dFQktJVF9TREtfUEFUSCBmb3IgZW5naW5l
ZXJpbmcgYnVpbGRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNz
Q2FzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Fj
Y2Vzc0Nhc2UuY3BwCShyZXZpc2lvbiAyMzA4MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOCw5ICs4MTgsOSBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lCiAKICAgICAgICAgICAg
IGppdC5hZGRMaW5rVGFzayhbPSwgJnZtXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAg
ICAgICAgICAgICAgIHRoaXMtPmFzPEdldHRlclNldHRlckFjY2Vzc0Nhc2U+KCkuY2FsbExpbmtJ
bmZvKCktPnNldENhbGxMb2NhdGlvbnMoCi0gICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlv
bkxhYmVsPEpTRW50cnlQdHJUYWc+KGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTRW50
cnlQdHJUYWc+KHNsb3dQYXRoQ2FsbCkpLAotICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbDxKU0VudHJ5UHRyVGFnPihsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNFbnRyeVB0clRh
Zz4oYWRkcmVzc09mTGlua0Z1bmN0aW9uQ2hlY2spKSwKLSAgICAgICAgICAgICAgICAgICAgbGlu
a0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNFbnRyeVB0clRhZz4oZmFzdFBhdGhDYWxsKSk7
CisgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+
KGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KHNsb3dQYXRo
Q2FsbCkpLAorICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFs
UHRyVGFnPihsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4oYWRkcmVzc09m
TGlua0Z1bmN0aW9uQ2hlY2spKSwKKyAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2Nh
dGlvbk9mTmVhckNhbGw8SlNJbnRlcm5hbFB0clRhZz4oZmFzdFBhdGhDYWxsKSk7CiAKICAgICAg
ICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoCiAgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRo
Q2FsbCwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgJ
KHJldmlzaW9uIDIzMDgyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZh
bEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBAIGlubGluZSBKSVRBcnJh
eU1vZGUgaml0QXJyYXlNb2RlRm9yU3RydWMKIHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFs
SW5mbygpIHsgfQogCi0gICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVM
b2NhdGlvbkp1bXA8SlNFbnRyeVB0clRhZz4gbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1w
PEpTRW50cnlQdHJUYWc+IGJhZFR5cGVKdW1wLCBDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25I
YW5kbGVyUHRyVGFnPiBleGNlcHRpb25IYW5kbGVyLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50
MTZfdCBiYWRUeXBlSnVtcFRvTmV4dEhvdFBhdGgsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xv
d1BhdGgpCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlv
bkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wPEpT
SW50ZXJuYWxQdHJUYWc+IGJhZFR5cGVKdW1wLCBDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25I
YW5kbGVyUHRyVGFnPiBleGNlcHRpb25IYW5kbGVyLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50
MTZfdCBiYWRUeXBlSnVtcFRvTmV4dEhvdFBhdGgsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xv
d1BhdGgpCiAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQogICAgICAgICAs
IG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlw
ZUp1bXApCkBAIC0yNDQsOCArMjQ0LDggQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgfQogCiAg
ICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKLSAgICBDb2RlTG9jYXRpb25KdW1wPEpTRW50cnlQ
dHJUYWc+IG5vdEluZGV4SnVtcDsKLSAgICBDb2RlTG9jYXRpb25KdW1wPEpTRW50cnlQdHJUYWc+
IGJhZFR5cGVKdW1wOworICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gbm90
SW5kZXhKdW1wOworICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gYmFkVHlw
ZUp1bXA7CiAgICAgQ29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4gZXhj
ZXB0aW9uSGFuZGxlcjsKICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJyYXkg
bW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAgQXJyYXlQ
cm9maWxlKiBhcnJheVByb2ZpbGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkocmV2aXNpb24gMjMwODI2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk3LDI1ICs5NywyNSBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dW5saW5rKFZNJiB2bSkKICAgICBS
RUxFQVNFX0FTU0VSVCghaXNPbkxpc3QoKSk7CiB9CiAKLUNvZGVMb2NhdGlvbk5lYXJDYWxsPEpT
RW50cnlQdHJUYWc+IENhbGxMaW5rSW5mbzo6Y2FsbFJldHVybkxvY2F0aW9uKCkKK0NvZGVMb2Nh
dGlvbk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+IENhbGxMaW5rSW5mbzo6Y2FsbFJldHVybkxv
Y2F0aW9uKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7Ci0gICAgcmV0dXJu
IENvZGVMb2NhdGlvbk5lYXJDYWxsPEpTRW50cnlQdHJUYWc+KG1fY2FsbFJldHVybkxvY2F0aW9u
T3JQYXRjaGFibGVKdW1wLCBSZWd1bGFyKTsKKyAgICByZXR1cm4gQ29kZUxvY2F0aW9uTmVhckNh
bGw8SlNJbnRlcm5hbFB0clRhZz4obV9jYWxsUmV0dXJuTG9jYXRpb25PclBhdGNoYWJsZUp1bXAs
IFJlZ3VsYXIpOwogfQogCi1Db2RlTG9jYXRpb25KdW1wPEpTRW50cnlQdHJUYWc+IENhbGxMaW5r
SW5mbzo6cGF0Y2hhYmxlSnVtcCgpCitDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQdHJUYWc+
IENhbGxMaW5rSW5mbzo6cGF0Y2hhYmxlSnVtcCgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2Fs
bFR5cGUoKSA9PSBEaXJlY3RUYWlsQ2FsbCk7Ci0gICAgcmV0dXJuIENvZGVMb2NhdGlvbkp1bXA8
SlNFbnRyeVB0clRhZz4obV9jYWxsUmV0dXJuTG9jYXRpb25PclBhdGNoYWJsZUp1bXApOworICAg
IHJldHVybiBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQdHJUYWc+KG1fY2FsbFJldHVybkxv
Y2F0aW9uT3JQYXRjaGFibGVKdW1wKTsKIH0KIAotQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyPEpT
RW50cnlQdHJUYWc+IENhbGxMaW5rSW5mbzo6aG90UGF0aEJlZ2luKCkKK0NvZGVMb2NhdGlvbkRh
dGFMYWJlbFB0cjxKU0ludGVybmFsUHRyVGFnPiBDYWxsTGlua0luZm86OmhvdFBhdGhCZWdpbigp
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0KCkpOwotICAgIHJldHVybiBDb2RlTG9j
YXRpb25EYXRhTGFiZWxQdHI8SlNFbnRyeVB0clRhZz4obV9ob3RQYXRoQmVnaW5PclNsb3dQYXRo
U3RhcnQpOworICAgIHJldHVybiBDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8SlNJbnRlcm5hbFB0
clRhZz4obV9ob3RQYXRoQmVnaW5PclNsb3dQYXRoU3RhcnQpOwogfQogCi1Db2RlTG9jYXRpb25M
YWJlbDxKU0VudHJ5UHRyVGFnPiBDYWxsTGlua0luZm86OnNsb3dQYXRoU3RhcnQoKQorQ29kZUxv
Y2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gQ2FsbExpbmtJbmZvOjpzbG93UGF0aFN0YXJ0
KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc0RpcmVjdCgpKTsKICAgICByZXR1cm4gbV9ob3RQ
YXRoQmVnaW5PclNsb3dQYXRoU3RhcnQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCShyZXZpc2lvbiAyMzA4MjYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
NSw5ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9pZCBzZXRDYWxsTG9jYXRpb25z
KAotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBjYWxsUmV0dXJuTG9j
YXRpb25PclBhdGNoYWJsZUp1bXAsCi0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQ
dHJUYWc+IGhvdFBhdGhCZWdpbk9yU2xvd1BhdGhTdGFydCwKLSAgICAgICAgQ29kZUxvY2F0aW9u
TmVhckNhbGw8SlNFbnRyeVB0clRhZz4gaG90UGF0aE90aGVyKQorICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBjYWxsUmV0dXJuTG9jYXRpb25PclBhdGNoYWJsZUp1
bXAsCisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IGhvdFBhdGhC
ZWdpbk9yU2xvd1BhdGhTdGFydCwKKyAgICAgICAgQ29kZUxvY2F0aW9uTmVhckNhbGw8SlNJbnRl
cm5hbFB0clRhZz4gaG90UGF0aE90aGVyKQogICAgIHsKICAgICAgICAgbV9jYWxsUmV0dXJuTG9j
YXRpb25PclBhdGNoYWJsZUp1bXAgPSBjYWxsUmV0dXJuTG9jYXRpb25PclBhdGNoYWJsZUp1bXA7
CiAgICAgICAgIG1faG90UGF0aEJlZ2luT3JTbG93UGF0aFN0YXJ0ID0gaG90UGF0aEJlZ2luT3JT
bG93UGF0aFN0YXJ0OwpAQCAtMTgxLDEyICsxODEsMTIgQEAgcHVibGljOgogICAgICAgICBtX2Fs
bG93U3R1YnMgPSBmYWxzZTsKICAgICB9CiAKLSAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbDxKU0Vu
dHJ5UHRyVGFnPiBjYWxsUmV0dXJuTG9jYXRpb24oKTsKLSAgICBDb2RlTG9jYXRpb25KdW1wPEpT
RW50cnlQdHJUYWc+IHBhdGNoYWJsZUp1bXAoKTsKLSAgICBDb2RlTG9jYXRpb25EYXRhTGFiZWxQ
dHI8SlNFbnRyeVB0clRhZz4gaG90UGF0aEJlZ2luKCk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8
SlNFbnRyeVB0clRhZz4gc2xvd1BhdGhTdGFydCgpOworICAgIENvZGVMb2NhdGlvbk5lYXJDYWxs
PEpTSW50ZXJuYWxQdHJUYWc+IGNhbGxSZXR1cm5Mb2NhdGlvbigpOworICAgIENvZGVMb2NhdGlv
bkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gcGF0Y2hhYmxlSnVtcCgpOworICAgIENvZGVMb2NhdGlv
bkRhdGFMYWJlbFB0cjxKU0ludGVybmFsUHRyVGFnPiBob3RQYXRoQmVnaW4oKTsKKyAgICBDb2Rl
TG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBzbG93UGF0aFN0YXJ0KCk7CiAKLSAgICBD
b2RlTG9jYXRpb25OZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPiBob3RQYXRoT3RoZXIoKQorICAgIENv
ZGVMb2NhdGlvbk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+IGhvdFBhdGhPdGhlcigpCiAgICAg
ewogICAgICAgICByZXR1cm4gbV9ob3RQYXRoT3RoZXI7CiAgICAgfQpAQCAtMzI3LDExICszMjcs
OSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91
bGQgYmUgdGFnZ2VkIHdpdGggSlNJbnRlcm5hbFB0clRhZyBpbnN0ZWFkIG9mIEpTRW50cnlUYWcu
Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcxMgot
ICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IG1fY2FsbFJldHVybkxvY2F0aW9u
T3JQYXRjaGFibGVKdW1wOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IG1f
aG90UGF0aEJlZ2luT3JTbG93UGF0aFN0YXJ0OwotICAgIENvZGVMb2NhdGlvbk5lYXJDYWxsPEpT
RW50cnlQdHJUYWc+IG1faG90UGF0aE90aGVyOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50
ZXJuYWxQdHJUYWc+IG1fY2FsbFJldHVybkxvY2F0aW9uT3JQYXRjaGFibGVKdW1wOworICAgIENv
ZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IG1faG90UGF0aEJlZ2luT3JTbG93UGF0
aFN0YXJ0OworICAgIENvZGVMb2NhdGlvbk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+IG1faG90
UGF0aE90aGVyOwogICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fY2FsbGVlT3JDb2RlQmxvY2s7
CiAgICAgV3JpdGVCYXJyaWVyPEpTQ2VsbD4gbV9sYXN0U2VlbkNhbGxlZU9yRXhlY3V0YWJsZTsK
ICAgICBSZWZQdHI8UG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU+IG1fc3R1YjsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNz
LmNwcAkocmV2aXNpb24gMjMwODI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU4LDcgKzU1OCw3IEBA
IEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3MKICAgICAgICAgcmV0dXJu
IEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQ6OkdhdmVVcDsKICAgICB9CiAKLSAgICBDb2RlTG9jYXRp
b25MYWJlbDxKU0VudHJ5UHRyVGFnPiBzdWNjZXNzTGFiZWwgPSBzdHViSW5mby5kb25lTG9jYXRp
b24oKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBzdWNjZXNzTGFi
ZWwgPSBzdHViSW5mby5kb25lTG9jYXRpb24oKTsKIAogICAgIGxpbmtCdWZmZXIubGluayhzdGF0
ZS5zdWNjZXNzLCBzdWNjZXNzTGFiZWwpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkocmV2aXNpb24gMjMwODI2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgfSBwYXRjaDsKIAog
ICAgIENvZGVMb2NhdGlvbkNhbGw8SlNJbnRlcm5hbFB0clRhZz4gc2xvd1BhdGhDYWxsTG9jYXRp
b24oKSB7IHJldHVybiBwYXRjaC5zdGFydC5jYWxsQXRPZmZzZXQ8SlNJbnRlcm5hbFB0clRhZz4o
cGF0Y2guZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uKTsgfQotICAgIENvZGVM
b2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IGRvbmVMb2NhdGlvbigpIHsgcmV0dXJuIHBhdGNo
LnN0YXJ0LmxhYmVsQXRPZmZzZXQ8SlNFbnRyeVB0clRhZz4ocGF0Y2guaW5saW5lU2l6ZSk7IH0K
KyAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBkb25lTG9jYXRpb24oKSB7
IHJldHVybiBwYXRjaC5zdGFydC5sYWJlbEF0T2Zmc2V0PEpTSW50ZXJuYWxQdHJUYWc+KHBhdGNo
LmlubGluZVNpemUpOyB9CiAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJU
YWc+IHNsb3dQYXRoU3RhcnRMb2NhdGlvbigpIHsgcmV0dXJuIHBhdGNoLnN0YXJ0LmxhYmVsQXRP
ZmZzZXQocGF0Y2guZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQpOyB9CiAgICAgQ29kZUxv
Y2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBwYXRjaGFibGVKdW1wRm9ySW4oKQogICAgIHsg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAko
cmV2aXNpb24gMjMwODI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MiwyNiArMjkyLDI2IEBAIHZvaWQgSklUQ29t
cGlsZXI6OmxpbmsoTGlua0J1ZmZlciYgbGlua0IKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZv
ID0gKnJlY29yZC5pbmZvOwogICAgICAgICBsaW5rQnVmZmVyLmxpbmsocmVjb3JkLnNsb3dDYWxs
LCBsaW5rQ2FsbFRodW5rKTsKICAgICAgICAgaW5mby5zZXRDYWxsTG9jYXRpb25zKAotICAgICAg
ICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4obGlua0J1ZmZlci5sb2NhdGlv
bk9mTmVhckNhbGw8SlNFbnRyeVB0clRhZz4ocmVjb3JkLnNsb3dDYWxsKSksCi0gICAgICAgICAg
ICBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8
SlNFbnRyeVB0clRhZz4ocmVjb3JkLnRhcmdldFRvQ2hlY2spKSwKLSAgICAgICAgICAgIGxpbmtC
dWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTRW50cnlQdHJUYWc+KHJlY29yZC5mYXN0Q2FsbCkp
OworICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4obGlua0J1
ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNJbnRlcm5hbFB0clRhZz4ocmVjb3JkLnNsb3dDYWxs
KSksCisgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPihsaW5r
QnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4ocmVjb3JkLnRhcmdldFRvQ2hlY2sp
KSwKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQ
dHJUYWc+KHJlY29yZC5mYXN0Q2FsbCkpOwogICAgIH0KICAgICAKICAgICBmb3IgKEpTRGlyZWN0
Q2FsbFJlY29yZCYgcmVjb3JkIDogbV9qc0RpcmVjdENhbGxzKSB7CiAgICAgICAgIENhbGxMaW5r
SW5mbyYgaW5mbyA9ICpyZWNvcmQuaW5mbzsKICAgICAgICAgbGlua0J1ZmZlci5saW5rKHJlY29y
ZC5jYWxsLCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8Tm9QdHJUYWc+KHJlY29yZC5zbG93UGF0aCkp
OwogICAgICAgICBpbmZvLnNldENhbGxMb2NhdGlvbnMoCi0gICAgICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbDxKU0VudHJ5UHRyVGFnPigpLAotICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlv
bk9mPEpTRW50cnlQdHJUYWc+KHJlY29yZC5zbG93UGF0aCksCi0gICAgICAgICAgICBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihyZWNvcmQuY2FsbCkpOworICAg
ICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4oKSwKKyAgICAgICAg
ICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihyZWNvcmQuc2xvd1Bh
dGgpLAorICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNJbnRlcm5h
bFB0clRhZz4ocmVjb3JkLmNhbGwpKTsKICAgICB9CiAgICAgCiAgICAgZm9yIChKU0RpcmVjdFRh
aWxDYWxsUmVjb3JkJiByZWNvcmQgOiBtX2pzRGlyZWN0VGFpbENhbGxzKSB7CiAgICAgICAgIENh
bGxMaW5rSW5mbyYgaW5mbyA9ICpyZWNvcmQuaW5mbzsKICAgICAgICAgaW5mby5zZXRDYWxsTG9j
YXRpb25zKAotICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+
KHJlY29yZC5wYXRjaGFibGVKdW1wKSwKLSAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25P
ZjxKU0VudHJ5UHRyVGFnPihyZWNvcmQuc2xvd1BhdGgpLAotICAgICAgICAgICAgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mTmVhckNhbGw8SlNFbnRyeVB0clRhZz4ocmVjb3JkLmNhbGwpKTsKKyAgICAg
ICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihyZWNvcmQucGF0
Y2hhYmxlSnVtcCksCisgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5h
bFB0clRhZz4ocmVjb3JkLnNsb3dQYXRoKSwKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRp
b25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KHJlY29yZC5jYWxsKSk7CiAgICAgfQogICAg
IAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gb3NyRXhpdFRodW5r
ID0gdm0oKS0+Z2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAkocmV2aXNpb24gMjMw
ODI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzU0LDcgKzc1NCw3IEBAIHN0YXRpYyB2b2lkIHJlaWZ5SW5saW5lZENhbGxG
cmFtZXMoQ29udGUKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIENvZGVCbG9jayogYmFz
ZWxpbmVDb2RlQmxvY2tGb3JDYWxsZXIgPSBiYXNlbGluZUNvZGVCbG9ja0Zvck9yaWdpbkFuZEJh
c2VsaW5lQ29kZUJsb2NrKCp0cnVlQ2FsbGVyLCBvdXRlcm1vc3RCYXNlbGluZUNvZGVCbG9jayk7
CiAgICAgICAgICAgICB1bnNpZ25lZCBjYWxsQnl0ZWNvZGVJbmRleCA9IHRydWVDYWxsZXItPmJ5
dGVjb2RlSW5kZXg7Ci0gICAgICAgICAgICB2b2lkKiBqdW1wVGFyZ2V0ID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0ludGVybmFsUHRyVGFnPiBqdW1wVGFy
Z2V0OwogCiAgICAgICAgICAgICBzd2l0Y2ggKHRydWVDYWxsZXJDYWxsS2luZCkgewogICAgICAg
ICAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OkNhbGw6CkBAIC03NjcsNyArNzY3LDcgQEAgc3Rh
dGljIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDb250ZQogICAgICAgICAgICAgICAgICAg
ICBiYXNlbGluZUNvZGVCbG9ja0ZvckNhbGxlci0+Z2V0Q2FsbExpbmtJbmZvRm9yQnl0ZWNvZGVJ
bmRleChjYWxsQnl0ZWNvZGVJbmRleCk7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
Y2FsbExpbmtJbmZvKTsKIAotICAgICAgICAgICAgICAgIGp1bXBUYXJnZXQgPSBjYWxsTGlua0lu
Zm8tPmNhbGxSZXR1cm5Mb2NhdGlvbigpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAgICAg
ICAgICAganVtcFRhcmdldCA9IGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKQEAgLTc3Nyw3ICs3NzcsNyBA
QCBzdGF0aWMgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKENvbnRlCiAgICAgICAgICAgICAg
ICAgICAgIGJhc2VsaW5lQ29kZUJsb2NrRm9yQ2FsbGVyLT5maW5kU3R1YkluZm8oQ29kZU9yaWdp
bihjYWxsQnl0ZWNvZGVJbmRleCkpOwogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN0
dWJJbmZvKTsKIAotICAgICAgICAgICAgICAgIGp1bXBUYXJnZXQgPSBzdHViSW5mby0+ZG9uZUxv
Y2F0aW9uKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICAgICAgICAgICAgICBqdW1wVGFyZ2V0
ID0gc3R1YkluZm8tPmRvbmVMb2NhdGlvbigpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogCkBAIC03ODgsMTEgKzc4OCwxMiBAQCBzdGF0aWMgdm9pZCByZWlmeUlubGlu
ZWRDYWxsRnJhbWVzKENvbnRlCiAgICAgICAgICAgICBpZiAodHJ1ZUNhbGxlci0+aW5saW5lQ2Fs
bEZyYW1lKQogICAgICAgICAgICAgICAgIGNhbGxlckZyYW1lID0gY3B1LmZwPHVpbnQ4X3QqPigp
ICsgdHJ1ZUNhbGxlci0+aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNpemVvZihFbmNv
ZGVkSlNWYWx1ZSk7CiAKKyAgICAgICAgICAgIHZvaWQqIHRhcmdldEFkZHJlc3MgPSBqdW1wVGFy
Z2V0LmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAjaWYgVVNFKFBPSU5URVJfUFJPRklMSU5HKQogICAg
ICAgICAgICAgdm9pZCogbmV3RW50cnlTUCA9IGNwdS5mcDx1aW50OF90Kj4oKSArIGlubGluZUNh
bGxGcmFtZS0+cmV0dXJuUENPZmZzZXQoKSArIHNpemVvZih2b2lkKik7Ci0gICAgICAgICAgICBq
dW1wVGFyZ2V0ID0gcmV0YWdDb2RlUHRyKGp1bXBUYXJnZXQsIEpTRW50cnlQdHJUYWcsIGJpdHdp
c2VfY2FzdDxQdHJUYWc+KG5ld0VudHJ5U1ApKTsKKyAgICAgICAgICAgIHRhcmdldEFkZHJlc3Mg
PSByZXRhZ0NvZGVQdHIodGFyZ2V0QWRkcmVzcywgSlNJbnRlcm5hbFB0clRhZywgYml0d2lzZV9j
YXN0PFB0clRhZz4obmV3RW50cnlTUCkpOwogI2VuZGlmCi0gICAgICAgICAgICBmcmFtZS5zZXQ8
dm9pZCo+KGlubGluZUNhbGxGcmFtZS0+cmV0dXJuUENPZmZzZXQoKSwganVtcFRhcmdldCk7Cisg
ICAgICAgICAgICBmcmFtZS5zZXQ8dm9pZCo+KGlubGluZUNhbGxGcmFtZS0+cmV0dXJuUENPZmZz
ZXQoKSwgdGFyZ2V0QWRkcmVzcyk7CiAgICAgICAgIH0KIAogICAgICAgICBmcmFtZS5zZXRPcGVy
YW5kPHZvaWQqPihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6
Y29kZUJsb2NrLCBiYXNlbGluZUNvZGVCbG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExhenlTbG93UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMYXp5U2xvd1BhdGguY3BwCShyZXZpc2lvbiAyMzA4MjYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExhenlTbG93UGF0aC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDcgKzM4LDcgQEAgTGF6eVNsb3dQYXRoOjp+TGF6eVNsb3dQYXRoKCkKIH0KIAogdm9p
ZCBMYXp5U2xvd1BhdGg6OmluaXRpYWxpemUoCi0gICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVy
bmFsUHRyVGFnPiBwYXRjaGFibGVKdW1wLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFn
PiBkb25lLAorICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gcGF0Y2hhYmxl
SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gZG9uZSwKICAgICBDb2Rl
TG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBleGNlcHRpb25UYXJnZXQsCiAg
ICAgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhbGxTaXRlSW5kZXggY2FsbFNp
dGVJbmRleCwgUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yCiAgICAgKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMYXp5U2xvd1BhdGguaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExhenlTbG93UGF0aC5oCShyZXZpc2lvbiAyMzA4MjYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExhenlTbG93UGF0aC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OSwxMyArNjksMTMgQEAgcHVibGljOgogICAgIH5MYXp5U2xvd1BhdGgoKTsK
IAogICAgIHZvaWQgaW5pdGlhbGl6ZSgKLSAgICAgICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVy
bmFsUHRyVGFnPiBwYXRjaGFibGVKdW1wLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFn
PiBkb25lLAorICAgICAgICBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQdHJUYWc+IHBhdGNo
YWJsZUp1bXAsIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IGRvbmUsCiAgICAg
ICAgIENvZGVMb2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWc+IGV4Y2VwdGlvblRh
cmdldCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIENhbGxTaXRl
SW5kZXgsIFJlZlB0cjxHZW5lcmF0b3I+CiAgICAgICAgICk7CiAKICAgICBDb2RlTG9jYXRpb25K
dW1wPEpTSW50ZXJuYWxQdHJUYWc+IHBhdGNoYWJsZUp1bXAoKSBjb25zdCB7IHJldHVybiBtX3Bh
dGNoYWJsZUp1bXA7IH0KLSAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBkb25l
KCkgY29uc3QgeyByZXR1cm4gbV9kb25lOyB9CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRl
cm5hbFB0clRhZz4gZG9uZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9uZTsgfQogICAgIGNvbnN0IFJl
Z2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV91c2VkUmVnaXN0ZXJz
OyB9CiAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9j
YWxsU2l0ZUluZGV4OyB9CiAKQEAgLTg1LDkgKzg1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gbV9wYXRjaGFibGVKdW1wOwot
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0YWdnZWQgd2l0aCBKU0ludGVybmFsUHRyVGFn
IGluc3RlYWQgb2YgSlNFbnRyeVRhZy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg0NzEyCi0gICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRh
Zz4gbV9kb25lOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IG1fZG9u
ZTsKICAgICBDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBtX2V4Y2Vw
dGlvblRhcmdldDsKICAgICBSZWdpc3RlclNldCBtX3VzZWRSZWdpc3RlcnM7CiAgICAgQ2FsbFNp
dGVJbmRleCBtX2NhbGxTaXRlSW5kZXg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMzA4MjYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcx
NzIsOSArNzE3Miw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVm
ZmVyLmxpbmsoc2xvd0NhbGwsIEZ1bmN0aW9uUHRyPEpJVFRodW5rUHRyVGFnPihsaW5rQ2FsbCkp
OwogCiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldENhbGxMb2NhdGlv
bnMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRy
eVB0clRhZz4obGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNFbnRyeVB0clRhZz4oc2xv
d0NhbGwpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxK
U0VudHJ5UHRyVGFnPihsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNFbnRyeVB0clRhZz4odGFyZ2V0
VG9DaGVjaykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRp
b25PZk5lYXJDYWxsPEpTRW50cnlQdHJUYWc+KGZhc3RDYWxsKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4obGlua0J1ZmZl
ci5sb2NhdGlvbk9mTmVhckNhbGw8SlNJbnRlcm5hbFB0clRhZz4oc2xvd0NhbGwpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFn
PihsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4odGFyZ2V0VG9DaGVjaykp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJD
YWxsPEpTSW50ZXJuYWxQdHJUYWc+KGZhc3RDYWxsKSk7CiAgICAgICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgfSk7CiAKQEAgLTczMTQsMTAgKzczMTQsMTAgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygK
ICAgICAgICAgICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJU
YWc+IHBhdGNoYWJsZUp1bXBMb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5
UHRyVGFnPihwYXRjaGFibGVKdW1wKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2Rl
TG9jYXRpb25OZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPiBjYWxsTG9jYXRpb24gPSBsaW5rQnVmZmVy
LmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihjYWxsKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBzbG93UGF0aExv
Y2F0aW9uID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+KHNsb3dQYXRoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBwYXRjaGFibGVKdW1wTG9jYXRp
b24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4ocGF0Y2hhYmxlSnVt
cCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTmVhckNhbGw8SlNJ
bnRlcm5hbFB0clRhZz4gY2FsbExvY2F0aW9uID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNh
bGw8SlNJbnRlcm5hbFB0clRhZz4oY2FsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gc2xvd1BhdGhMb2NhdGlvbiA9IGxp
bmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihzbG93UGF0aCk7CisKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldENhbGxMb2NhdGlvbnMoCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoYWJsZUp1bXBMb2NhdGlvbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGhMb2NhdGlvbiwKQEAgLTczNjMs
MTMgKzczNjMsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPiBjYWxsTG9j
YXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihjYWxs
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNF
bnRyeVB0clRhZz4gc2xvd1BhdGhMb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0Vu
dHJ5UHRyVGFnPihzbG93UGF0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbDxKU0lu
dGVybmFsUHRyVGFnPiBjYWxsTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2Fs
bDxKU0ludGVybmFsUHRyVGFnPihjYWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gc2xvd1BhdGhMb2NhdGlvbiA9
IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihzbG93UGF0aCk7CisKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIHNsb3dQ
YXRoTG9jYXRpb24pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldENhbGxMb2NhdGlvbnMo
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxK
U0VudHJ5UHRyVGFnPigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29k
ZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4oKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNsb3dQYXRoTG9jYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYWxsTG9jYXRpb24pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwpAQCAtNzQ5Miw5ICs3NDkyLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmtCdWZmZXIubGluayhzbG93Q2FsbCwgRnVuY3Rpb25QdHI8SklUVGh1bmtQdHJUYWc+
KGxpbmtDYWxsKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+c2V0
Q2FsbExvY2F0aW9ucygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25M
YWJlbDxKU0VudHJ5UHRyVGFnPihsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5
UHRyVGFnPihzbG93Q2FsbCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2Nh
dGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5UHRy
VGFnPih0YXJnZXRUb0NoZWNrKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1
ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNFbnRyeVB0clRhZz4oZmFzdENhbGwpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFn
PihsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0ludGVybmFsUHRyVGFnPihzbG93Q2Fs
bCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50
ZXJuYWxQdHJUYWc+KGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPih0YXJn
ZXRUb0NoZWNrKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2Nh
dGlvbk9mTmVhckNhbGw8SlNJbnRlcm5hbFB0clRhZz4oZmFzdENhbGwpKTsKICAgICAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICB9CkBAIC03NzkwLDkgKzc3OTAsOSBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dD
YWxsLCBGdW5jdGlvblB0cjxKSVRUaHVua1B0clRhZz4obGlua0NhbGwpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRD
YWxsTG9jYXRpb25zKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxh
YmVsPEpTRW50cnlQdHJUYWc+KGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTRW50cnlQ
dHJUYWc+KHNsb3dDYWxsKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0
aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4obGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJU
YWc+KHRhcmdldFRvQ2hlY2spKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihmYXN0Q2FsbCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+
KGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KHNsb3dDYWxs
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRl
cm5hbFB0clRhZz4obGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KHRhcmdl
dFRvQ2hlY2spKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0
aW9uT2ZOZWFyQ2FsbDxKU0ludGVybmFsUHRyVGFnPihmYXN0Q2FsbCkpOwogICAgICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogCkBAIC04MDcyLDkgKzgwNzIsOSBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKHNsb3dDYWxsLCBG
dW5jdGlvblB0cjxKSVRUaHVua1B0clRhZz4obGlua0NhbGwpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRDYWxsTG9j
YXRpb25zKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpT
RW50cnlQdHJUYWc+KGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTRW50cnlQdHJUYWc+
KHNsb3dDYWxsKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWw8SlNFbnRyeVB0clRhZz4obGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+KHRh
cmdldFRvQ2hlY2spKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihmYXN0Q2FsbCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+KGxpbmtC
dWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KHNsb3dDYWxsKSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0
clRhZz4obGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KHRhcmdldFRvQ2hl
Y2spKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZO
ZWFyQ2FsbDxKU0ludGVybmFsUHRyVGFnPihmYXN0Q2FsbCkpOwogICAgICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIH0pOwogCkBAIC05Njg3LDE1ICs5Njg3LDE1IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJ
VFN0dWJSb3V0aW5lUHRyVGFnPihqdW1wKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHViSW5mby0+cGF0Y2guc3RhcnQgPSBzdGFydDsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgaW5saW5lU2l6ZSA9IE1hY3JvQXNz
ZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNFbnRy
eVB0clRhZz4oZG9uZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mPE5vUHRyVGFnPihkb25lKSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW5saW5l
U2l6ZSA+PSAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHVi
SW5mby0+cGF0Y2guaW5saW5lU2l6ZSA9IGlubGluZVNpemU7CiAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHViSW5mby0+cGF0Y2guZGVsdGFGcm9tU3RhcnRUb1Ns
b3dQYXRoQ2FsbExvY2F0aW9uID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29k
ZVB0cigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQs
IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5UHRyVGFnPihzbG93UGF0aENhbGwpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZm
ZXIubG9jYXRpb25PZjxOb1B0clRhZz4oc2xvd1BhdGhDYWxsKSk7CiAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHViSW5mby0+cGF0Y2guZGVsdGFGcm9tU3RhcnRU
b1Nsb3dQYXRoU3RhcnQgPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRy
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgbGlu
a0J1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+KHNsb3dQYXRoQmVnaW4pKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIu
bG9jYXRpb25PZjxOb1B0clRhZz4oc2xvd1BhdGhCZWdpbikpOwogCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
QEAgLTEzOTg0LDcgKzEzOTg0LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIGxpbmtlZFBhdGNoYWJsZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wPEpT
SW50ZXJuYWxQdHJUYWc+KGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihw
YXRjaGFibGVKdW1wKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gbGlua2VkRG9uZSA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxKU0VudHJ5UHRyVGFnPihkb25lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gbGlua2VkRG9uZSA9IGxpbmtC
dWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihkb25lKTsKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXggPQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0Q29kZS0+Y29tbW9uLmFkZFVuaXF1ZUNh
bGxTaXRlSW5kZXgob3JpZ2luKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJl
dmlzaW9uIDIzMDgyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODM1LDEwICs4MzUsMTAgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjps
aW5rKCkKIAogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGJ5VmFsQ29tcGlsYXRpb25JbmZvIDog
bV9ieVZhbENvbXBpbGF0aW9uSW5mbykgewogICAgICAgICAgICAgUGF0Y2hhYmxlSnVtcCBwYXRj
aGFibGVOb3RJbmRleEp1bXAgPSBieVZhbENvbXBpbGF0aW9uSW5mby5ub3RJbmRleEp1bXA7Ci0g
ICAgICAgICAgICBhdXRvIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXA8SlNFbnRyeVB0
clRhZz4oKTsKKyAgICAgICAgICAgIGF1dG8gbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVt
cDxKU0ludGVybmFsUHRyVGFnPigpOwogICAgICAgICAgICAgaWYgKEp1bXAocGF0Y2hhYmxlTm90
SW5kZXhKdW1wKS5pc1NldCgpKQotICAgICAgICAgICAgICAgIG5vdEluZGV4SnVtcCA9IENvZGVM
b2NhdGlvbkp1bXA8SlNFbnRyeVB0clRhZz4ocGF0Y2hCdWZmZXIubG9jYXRpb25PZjxKU0VudHJ5
UHRyVGFnPihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKLSAgICAgICAgICAgIGF1dG8gYmFkVHlw
ZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wPEpTRW50cnlQdHJUYWc+KHBhdGNoQnVmZmVyLmxvY2F0
aW9uT2Y8SlNFbnRyeVB0clRhZz4oYnlWYWxDb21waWxhdGlvbkluZm8uYmFkVHlwZUp1bXApKTsK
KyAgICAgICAgICAgICAgICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJu
YWxQdHJUYWc+KHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4ocGF0Y2hh
YmxlTm90SW5kZXhKdW1wKSk7CisgICAgICAgICAgICBhdXRvIGJhZFR5cGVKdW1wID0gQ29kZUxv
Y2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPihwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mPEpTSW50
ZXJuYWxQdHJUYWc+KGJ5VmFsQ29tcGlsYXRpb25JbmZvLmJhZFR5cGVKdW1wKSk7CiAgICAgICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbDxOb1B0clRhZz4gZG9uZVRhcmdldCA9IHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2Y8Tm9QdHJUYWc+KGJ5VmFsQ29tcGlsYXRpb25JbmZvLmRvbmVUYXJnZXQpOwog
ICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8Tm9QdHJUYWc+IG5leHRIb3RQYXRoVGFyZ2V0
ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZjxOb1B0clRhZz4oYnlWYWxDb21waWxhdGlvbkluZm8u
bmV4dEhvdFBhdGhUYXJnZXQpOwogICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8Tm9QdHJU
YWc+IHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZjxOb1B0clRhZz4oYnlW
YWxDb21waWxhdGlvbkluZm8uc2xvd1BhdGhUYXJnZXQpOwpAQCAtODYwLDkgKzg2MCw5IEBAIENv
bXBpbGF0aW9uUmVzdWx0IEpJVDo6bGluaygpCiAgICAgZm9yIChhdXRvJiBjb21waWxhdGlvbklu
Zm8gOiBtX2NhbGxDb21waWxhdGlvbkluZm8pIHsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZv
ID0gKmNvbXBpbGF0aW9uSW5mby5jYWxsTGlua0luZm87CiAgICAgICAgIGluZm8uc2V0Q2FsbExv
Y2F0aW9ucygKLSAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KHBh
dGNoQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihjb21waWxhdGlvbklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uKSksCi0gICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxK
U0VudHJ5UHRyVGFnPihwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+KGNvbXBp
bGF0aW9uSW5mby5ob3RQYXRoQmVnaW4pKSwKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxvY2F0
aW9uT2ZOZWFyQ2FsbDxKU0VudHJ5UHRyVGFnPihjb21waWxhdGlvbkluZm8uaG90UGF0aE90aGVy
KSk7CisgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPihwYXRj
aEJ1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNJbnRlcm5hbFB0clRhZz4oY29tcGlsYXRpb25J
bmZvLmNhbGxSZXR1cm5Mb2NhdGlvbikpLAorICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8
SlNJbnRlcm5hbFB0clRhZz4ocGF0Y2hCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFn
Pihjb21waWxhdGlvbkluZm8uaG90UGF0aEJlZ2luKSksCisgICAgICAgICAgICBwYXRjaEJ1ZmZl
ci5sb2NhdGlvbk9mTmVhckNhbGw8SlNJbnRlcm5hbFB0clRhZz4oY29tcGlsYXRpb25JbmZvLmhv
dFBhdGhPdGhlcikpOwogICAgIH0KIAogICAgIEpJVENvZGVNYXAgaml0Q29kZU1hcDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MjMwODI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCB2b2lkIGdlbmVyaWNVbndpbmQoVk0qIHZt
LCBFeGVjU3RhdGUqIGNhCiAgICAgICAgIGNhdGNoUm91dGluZSA9IGNhdGNoUENGb3JJbnRlcnBy
ZXRlci0+dS5wb2ludGVyOwogI2VuZGlmCiAgICAgfSBlbHNlCi0gICAgICAgIGNhdGNoUm91dGlu
ZSA9IExMSW50OjpnZXRFeGVjdXRhYmxlQWRkcmVzcyhoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbik7
CisgICAgICAgIGNhdGNoUm91dGluZSA9IExMSW50OjpnZXRDb2RlUHRyPEV4Y2VwdGlvbkhhbmRs
ZXJQdHJUYWc+KGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKS5leGVjdXRhYmxlQWRkcmVzcygpOwog
ICAgIAogICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihjYWxsRnJhbWUpIDwgYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4odm0tPnRvcEVudHJ5RnJhbWUpKTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNYXRoSUMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5oCShyZXZpc2lvbiAyMzA4MjYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE1hdGhJQy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxMSAr
NjIsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91
bGQgYmUgdGFnZ2VkIHdpdGggSlNJbnRlcm5hbFB0clRhZyBpbnN0ZWFkIG9mIEpTRW50cnlUYWcu
Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcxMgot
ICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IGRvbmVMb2NhdGlvbigpIHsgcmV0
dXJuIG1faW5saW5lU3RhcnQubGFiZWxBdE9mZnNldChtX2lubGluZVNpemUpOyB9Ci0gICAgQ29k
ZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4gc2xvd1BhdGhTdGFydExvY2F0aW9uKCkgeyBy
ZXR1cm4gbV9pbmxpbmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQ
YXRoU3RhcnQpOyB9Ci0gICAgQ29kZUxvY2F0aW9uQ2FsbDxKU0VudHJ5UHRyVGFnPiBzbG93UGF0
aENhbGxMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQuY2FsbEF0T2Zmc2V0KG1fZGVs
dGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uKTsgfQorICAgIENvZGVMb2NhdGlvbkxh
YmVsPEpTSW50ZXJuYWxQdHJUYWc+IGRvbmVMb2NhdGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3Rh
cnQubGFiZWxBdE9mZnNldChtX2lubGluZVNpemUpOyB9CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8
SlNJbnRlcm5hbFB0clRhZz4gc2xvd1BhdGhTdGFydExvY2F0aW9uKCkgeyByZXR1cm4gbV9pbmxp
bmVTdGFydC5sYWJlbEF0T2Zmc2V0KG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoU3RhcnQpOyB9
CisgICAgQ29kZUxvY2F0aW9uQ2FsbDxKU0ludGVybmFsUHRyVGFnPiBzbG93UGF0aENhbGxMb2Nh
dGlvbigpIHsgcmV0dXJuIG1faW5saW5lU3RhcnQuY2FsbEF0T2Zmc2V0KG1fZGVsdGFGcm9tU3Rh
cnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uKTsgfQogICAgIAogICAgIGJvb2wgZ2VuZXJhdGVJbmxp
bmUoQ0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIGJvb2wg
c2hvdWxkRW1pdFByb2ZpbGluZyA9IHRydWUpCiAgICAgewpAQCAtMjIzLDcgKzIyMSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZmluYWxpemVJbmxpbmVDb2RlKGNvbnN0IE1hdGhJQ0dlbmVyYXRp
b25TdGF0ZSYgc3RhdGUsIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiAgICAgewotICAgICAgICBD
b2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPiBzdGFydCA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxKU0VudHJ5UHRyVGFnPihzdGF0ZS5mYXN0UGF0aFN0YXJ0KTsKKyAgICAgICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gc3RhcnQgPSBsaW5rQnVmZmVyLmxvY2F0aW9u
T2Y8SlNJbnRlcm5hbFB0clRhZz4oc3RhdGUuZmFzdFBhdGhTdGFydCk7CiAgICAgICAgIG1faW5s
aW5lU3RhcnQgPSBzdGFydDsKIAogICAgICAgICBtX2lubGluZVNpemUgPSBNYWNyb0Fzc2VtYmxl
cjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKApAQCAtMjUzLDkgKzI1MSw3IEBAIHB1YmxpYzoK
ICAgICBBcml0aFByb2ZpbGUqIG1fYXJpdGhQcm9maWxlOwogICAgIEluc3RydWN0aW9uKiBtX2lu
c3RydWN0aW9uOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRh
Zz4gbV9jb2RlOwotICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSlNJ
bnRlcm5hbFB0clRhZyBpbnN0ZWFkIG9mIEpTRW50cnlUYWcuCi0gICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcxMgotICAgIENvZGVMb2NhdGlvbkxhYmVs
PEpTRW50cnlQdHJUYWc+IG1faW5saW5lU3RhcnQ7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJ
bnRlcm5hbFB0clRhZz4gbV9pbmxpbmVTdGFydDsKICAgICBpbnQzMl90IG1faW5saW5lU2l6ZTsK
ICAgICBpbnQzMl90IG1fZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9uOwogICAg
IGludDMyX3QgbV9kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCShyZXZpc2lvbiAyMzA4MjYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTgsNDEgKzU4LDEyIEBAIHZvaWQgaW5pdGlhbGl6ZSgpCiAjZWxzZSAvLyBFTkFCTEUoSklU
KQogICAgIGxsaW50X2VudHJ5KCZEYXRhOjpzX29wY29kZU1hcCk7CiAKLSAgICBmb3IgKGludCBp
ID0gMDsgaSA8IE5VTUJFUl9PRl9CWVRFQ09ERV9JRFM7ICsraSkKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IG51bU9wY29kZUlEczsgKytpKQogICAgICAgICBEYXRhOjpzX29wY29kZU1hcFtpXSA9
IHRhZ0NvZGVQdHIoRGF0YTo6c19vcGNvZGVNYXBbaV0sIEJ5dGVjb2RlUHRyVGFnKTsKIAotICAg
IHN0YXRpYyBjb25zdCBQdHJUYWcgdGFnc0Zvck9wY29kZVtdID0gewotICAgICAgICAvLyBGSVhN
RTogVGhlc2Ugc2hvdWxkIGJlIHRhZ2dlZCB3aXRoIEpTSW50ZXJuYWxQdHJUYWcgaW5zdGVhZCBv
ZiBKU0VudHJ5VGFnLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0NzEyCi0gICAgICAgIEpTRW50cnlQdHJUYWcsIC8vIGxsaW50X3Byb2dyYW1f
cHJvbG9ndWUKLSAgICAgICAgSlNFbnRyeVB0clRhZywgLy8gbGxpbnRfZXZhbF9wcm9sb2d1ZQot
ICAgICAgICBKU0VudHJ5UHRyVGFnLCAvLyBsbGludF9tb2R1bGVfcHJvZ3JhbV9wcm9sb2d1ZQot
ICAgICAgICBKU0VudHJ5UHRyVGFnLCAvLyBsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1
ZQotICAgICAgICBKU0VudHJ5UHRyVGFnLCAvLyBsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0
X3Byb2xvZ3VlCi0gICAgICAgIEpTRW50cnlQdHJUYWcsIC8vIGxsaW50X2Z1bmN0aW9uX2Zvcl9j
YWxsX2FyaXR5X2NoZWNrCi0gICAgICAgIEpTRW50cnlQdHJUYWcsIC8vIGxsaW50X2Z1bmN0aW9u
X2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2sKLSAgICAgICAgSlNFbnRyeVB0clRhZywgLy8gbGxp
bnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQKLSAgICAgICAgQnl0ZWNvZGVQdHJUYWcsIC8vIGxsaW50
X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKLSAgICAgICAgRXhjZXB0aW9uSGFuZGxl
clB0clRhZywgLy8gbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZQotICAgICAgICBK
U0VudHJ5UHRyVGFnLCAvLyBsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lCi0gICAgICAgIEpT
RW50cnlQdHJUYWcsIC8vIGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZQotICAgICAg
ICBKU0VudHJ5UHRyVGFnLCAvLyBsbGludF9pbnRlcm5hbF9mdW5jdGlvbl9jYWxsX3RyYW1wb2xp
bmUKLSAgICAgICAgSlNFbnRyeVB0clRhZywgLy8gbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29u
c3RydWN0X3RyYW1wb2xpbmUKLSAgICAgICAgRXhjZXB0aW9uSGFuZGxlclB0clRhZywgLy8gaGFu
ZGxlVW5jYXVnaHRFeGNlcHRpb24KLSAgICB9OwotCi0gICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
dGFnc0Zvck9wY29kZSkgLyBzaXplb2YodGFnc0Zvck9wY29kZVswXSkgPT0gTlVNQkVSX09GX0JZ
VEVDT0RFX0hFTFBFUl9JRFMsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnRwdHJfdD4obGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSkgPT0gTlVNQkVSX09GX0JZVEVDT0RFX0lE
UywgIiIpOwotCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1CRVJfT0ZfQllURUNPREVfSEVM
UEVSX0lEUzsgKytpKSB7Ci0gICAgICAgIGludCBvcGNvZGVJRCA9IGkgKyBOVU1CRVJfT0ZfQllU
RUNPREVfSURTOwotICAgICAgICBEYXRhOjpzX29wY29kZU1hcFtvcGNvZGVJRF0gPSB0YWdDb2Rl
UHRyKERhdGE6OnNfb3Bjb2RlTWFwW29wY29kZUlEXSwgdGFnc0Zvck9wY29kZVtpXSk7Ci0gICAg
fQotCi0gICAgdm9pZCogaGFuZGxlciA9IExMSW50OjpnZXRFeGVjdXRhYmxlQWRkcmVzcyhsbGlu
dF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lKTsKKyAgICB2b2lkKiBoYW5kbGVyID0g
RGF0YTo6c19vcGNvZGVNYXBbbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZV07
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhPcGNvZGVMZW5ndGggKyAxOyArK2kpCiAgICAg
ICAgIERhdGE6OnNfZXhjZXB0aW9uSW5zdHJ1Y3Rpb25zW2ldLnUucG9pbnRlciA9IGhhbmRsZXI7
Ci0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50RGF0YS5oCShyZXZpc2lvbiAyMzA4MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDE2ICs4MCwxMiBA
QCBpbmxpbmUgT3Bjb2RlIGdldE9wY29kZShPcGNvZGVJRCBpZCkKICNlbmRpZgogfQogCi1BTFdB
WVNfSU5MSU5FIHZvaWQqIGdldEV4ZWN1dGFibGVBZGRyZXNzKE9wY29kZUlEIG9wY29kZUlEKQot
ewotICAgIEFTU0VSVChvcGNvZGVJRCA+PSBOVU1CRVJfT0ZfQllURUNPREVfSURTKTsKLSAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZ2V0T3Bjb2RlKG9wY29kZUlEKSk7Ci19Ci0K
IHRlbXBsYXRlPFB0clRhZyB0YWc+CiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjx0YWc+IGdldENvZGVQdHIoT3Bjb2RlSUQgb3Bjb2RlSUQpCiB7Ci0gICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjx0YWc+OjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MoZ2V0T3Bj
b2RlKG9wY29kZUlEKSk7CisgICAgdm9pZCogYWRkcmVzcyA9IGdldE9wY29kZShvcGNvZGVJRCk7
CisgICAgYWRkcmVzcyA9IHJldGFnQ29kZVB0cjxCeXRlY29kZVB0clRhZywgdGFnPihhZGRyZXNz
KTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPHRhZz46OmNyZWF0ZUZyb21FeGVj
dXRhYmxlQWRkcmVzcyhhZGRyZXNzKTsKIH0KIAogdGVtcGxhdGU8UHRyVGFnIHRhZz4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMuY3BwCShy
ZXZpc2lvbiAyMzA4MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNl
cHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkKiBjYWxsVG9U
aHJvdyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoKnZtKTsKICAgICBkYXRhTG9nKCJUaHJvd2luZyBleGNlcHRpb24gIiwgSlNWYWx1ZShzY29w
ZS5leGNlcHRpb24oKSksICIgKGNhbGxUb1Rocm93KS5cbiIpOwogI2VuZGlmCi0gICAgcmV0dXJu
IExMSW50OjpnZXRFeGVjdXRhYmxlQWRkcmVzcyhsbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFt
cG9saW5lKTsKKyAgICByZXR1cm4gTExJbnQ6OmdldENvZGVQdHI8RXhjZXB0aW9uSGFuZGxlclB0
clRhZz4obGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZSkuZXhlY3V0YWJsZUFkZHJl
c3MoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDIzMDgy
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2MzYsNyArMTYzNiw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9jYWxsX2V2YWwKICAgICBleGVjQ2FsbGVlLT5zZXRBcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyhwY1szXS51Lm9wZXJhbmQpOwogICAgIGV4ZWNDYWxsZWUtPnNldENhbGxlckZyYW1l
KGV4ZWMpOwogICAgIGV4ZWNDYWxsZWUtPnVuY2hlY2tlZFIoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
KSA9IGNhbGxlZUFzVmFsdWU7Ci0gICAgZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMoTExJbnQ6Omdl
dEV4ZWN1dGFibGVBZGRyZXNzKGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50KSk7CisgICAgZXhl
Y0NhbGxlZS0+c2V0UmV0dXJuUEMoTExJbnQ6OmdldENvZGVQdHI8SlNFbnRyeVB0clRhZz4obGxp
bnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAgIGV4ZWND
YWxsZWUtPnNldENvZGVCbG9jaygwKTsKICAgICBleGVjLT5zZXRDdXJyZW50VlBDKHBjKTsKICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAJKHJl
dmlzaW9uIDIzMDgyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pT
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU0LDkgKzY1NCw5IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEJp
bmRpbmdGYWlsdXJlOjpPdXRPZk1lbW9yeSk7CiAKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dD
YWxsLCBGdW5jdGlvblB0cjxKSVRUaHVua1B0clRhZz4odm0tPmdldENUSVN0dWIobGlua0NhbGxU
aHVua0dlbmVyYXRvcikuY29kZSgpKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0
clRhZz4gY2FsbFJldHVybkxvY2F0aW9uKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbDxK
U0VudHJ5UHRyVGFnPihzbG93Q2FsbCkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQ
dHJUYWc+IGhvdFBhdGhCZWdpbihwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+
KHRhcmdldFRvQ2hlY2spKTsKLSAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbDxKU0VudHJ5UHRyVGFn
PiBob3RQYXRoT3RoZXIgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNFbnRyeVB0
clRhZz4oZmFzdENhbGwpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+
IGNhbGxSZXR1cm5Mb2NhdGlvbihwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGw8SlNJbnRl
cm5hbFB0clRhZz4oc2xvd0NhbGwpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFs
UHRyVGFnPiBob3RQYXRoQmVnaW4ocGF0Y2hCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRy
VGFnPih0YXJnZXRUb0NoZWNrKSk7CisgICAgQ29kZUxvY2F0aW9uTmVhckNhbGw8SlNJbnRlcm5h
bFB0clRhZz4gaG90UGF0aE90aGVyID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsPEpT
SW50ZXJuYWxQdHJUYWc+KGZhc3RDYWxsKTsKICAgICBjYWxsTGlua0luZm8tPnNldENhbGxMb2Nh
dGlvbnMoY2FsbFJldHVybkxvY2F0aW9uLCBob3RQYXRoQmVnaW4sIGhvdFBhdGhPdGhlcik7CiAK
ICAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgV2FzbUVudHJ5UHRyVGFnLCAi
V2ViQXNzZW1ibHktPkphdmFTY3JpcHQgaW1wb3J0WyVpXSAlcyIsIGltcG9ydEluZGV4LCBzaWdu
YXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Cg==
</data>
<flag name="review"
          id="356769"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>