<?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>156301</bug_id>
          
          <creation_ts>2016-04-06 11:45:52 -0700</creation_ts>
          <short_desc>REGRESSION(r199104): Still breaks internal builds (Requested by keith_miller on #webkit).</short_desc>
          <delta_ts>2016-04-06 11:50:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>156116</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>benjamin</cc>
    
    <cc>keith_miller</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181323</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-06 11:45:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199104 broke the build:
Still breaks internal builds (Requested by keith_miller on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181325</commentid>
    <comment_count>1</comment_count>
      <attachid>275794</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-06 11:46:31 -0700</bug_when>
    <thetext>Created attachment 275794
ROLLOUT of r199104

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181329</commentid>
    <comment_count>2</comment_count>
      <attachid>275794</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-06 11:49:57 -0700</bug_when>
    <thetext>Comment on attachment 275794
ROLLOUT of r199104

Clearing flags on attachment: 275794

Committed r199108: &lt;http://trac.webkit.org/changeset/199108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181330</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-06 11:50:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275794</attachid>
            <date>2016-04-06 11:46:31 -0700</date>
            <delta_ts>2016-04-06 11:49:57 -0700</delta_ts>
            <desc>ROLLOUT of r199104</desc>
            <filename>bug-156301-20160406114633.patch</filename>
            <type>text/plain</type>
            <size>60060</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZmExZTViNzRjODQyYzI5NzQxYzQwZDU0MmFhNGNhMWE1MzJkYjM4Li44OGIxMGE4ZGYzZDY2MWI1
OWZlM2UwN2Q1NWRjMmIwMTU4MzUwNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNi0wNC0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5OTEwNC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjMwMQorCisgICAg
ICAgIFN0aWxsIGJyZWFrcyBpbnRlcm5hbCBidWlsZHMgKFJlcXVlc3RlZCBieSBrZWl0aF9taWxs
ZXIgb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0Ogor
CisgICAgICAgICJXZSBzaG91bGQgc3VwcG9ydCB0aGUgYWJpbGl0eSB0byBkbyBhIG5vbi1lZmZl
Y3RmdWwgZ2V0QnlJZCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NjExNgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8x
OTkxMDQKKwogMjAxNi0wNC0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZWdFeHAgY29uc3RydWN0b3Igc2hvdWxkIHVzZSBTeW1ib2wubWF0Y2gg
YW5kIG90aGVyIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKaW5kZXggNGM0M2IwNDYyOWJhYzk4ZDdiMWJk
NDkxNWYwMzQyYzdmYmYyNjAzNi4uOGVlNTRlZWI3OWVmMDg4OTNhM2Y4ZDkzOTg2YmUzODNhNjk3
ZTBjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5F
eGVjdXRhYmxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5FeGVjdXRhYmxlcy5jcHAKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
K3N0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVy
bmFsKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3Rv
cktpbmQsIENvbnN0cnVjdEFiaWxpdHkpOworCiBCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5F
eGVjdXRhYmxlcyhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQogI2RlZmluZSBJTklUSUFMSVpFX0JV
SUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpICwgbV8jI25h
bWUjI1NvdXJjZShtYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfIyNu
YW1lLCBsZW5ndGgpKSkKQEAgLTUyLDkgKzU0LDkgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRGVmYXVsdENvbnN0cnVjdG9yKENvbnN0cnUK
ICAgICBjYXNlIENvbnN0cnVjdG9yS2luZDo6Tm9uZToKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDb25zdHJ1Y3RvcktpbmQ6OkJhc2U6Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxl
KG1fdm0sIG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9y
S2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBtYWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNv
ZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVj
dCk7CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQ6Ci0gICAgICAgIHJldHVybiBj
cmVhdGVFeGVjdXRhYmxlKG1fdm0sIG1ha2VTb3VyY2UoZGVyaXZlZENvbnN0cnVjdG9yQ29kZSks
IG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBtYWtlU291cmNl
KGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVj
dEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBudWxscHRyOwpAQCAtNjIsMTUgKzY0LDE1IEBAIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1Y3Rv
cihDb25zdHJ1CiAKIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJs
ZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKIHsK
LSAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZShtX3ZtLCBjb2RlLCBuYW1lLCBDb25zdHJ1Y3Rv
cktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworICAgIHJldHVybiBjcmVhdGVFeGVjdXRh
YmxlSW50ZXJuYWwobV92bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25z
dHJ1Y3RBYmlsaXR5KTsKIH0KIAogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1
aWx0aW5FeGVjdXRhYmxlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgY29kZSwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQogewotICAg
IHJldHVybiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGUodm0sIGNvZGUsIG5h
bWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7CisgICAgcmV0dXJu
IGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbCh2bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5k
OjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsKIH0KIAotVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZShWTSYgdm0sIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0b3JLaW5k
IGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQorVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChWTSYgdm0s
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3Ry
dWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmls
aXR5KQogewogICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmU7CiAg
ICAgUGFyc2VyRXJyb3IgZXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKaW5kZXggODc2NDVjMjJhYjQ3NDM5N2ExYTY5ZjZl
NzhkOGI2ODA2ODYzZmY2ZC4uZWM4ZDU3NzA0Yjg3YzU4NGE5MzZkZGU0MTdkNjI5Zjg1N2IzNjU3
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVj
dXRhYmxlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhl
Y3V0YWJsZXMuaApAQCAtNTIsNyArNTIsNiBAQCBjb25zdCBTb3VyY2VDb2RlJiBuYW1lIyNTb3Vy
Y2UoKSB7IHJldHVybiBtXyMjbmFtZSMjU291cmNlOyB9CiAKICAgICBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSogY3JlYXRlRGVmYXVsdENvbnN0cnVjdG9yKENvbnN0cnVjdG9yS2luZCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSk7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGUoVk0mLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJp
bGl0eSk7CiBwcml2YXRlOgogICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKaW5kZXggNDAzNTJhMTE1
ZTQ1NzJkNTM2NTIxZTBkYmI3YTE4NjNlY2EwMDY2MS4uYmY0MmEzMWVmM2YwNjI5NDBlODgwYzZk
ZjRlN2E4M2UwZjc1MTZmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCkBAIC00MSw3ICs0MSw2IEBA
IGNsYXNzIElkZW50aWZpZXI7CiAjZGVmaW5lIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lD
X0ZVTkNUSU9OU19FQUNIX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhhc3NlcnQpIFwKICAgICBt
YWNybyhpc09iamVjdCkgXAotICAgIG1hY3JvKHRyeUdldEJ5SWQpIFwKICAgICBtYWNybyhwdXRC
eVZhbERpcmVjdCkgXAogICAgIG1hY3JvKHRvU3RyaW5nKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggZThlYjliNmJkZTQ4NGMx
NzAxNTkwYzFhYWY5MmNjMGQ0NmFiNzU1ZS4uODI5M2Y3Njk3MzA3ZjQ0M2I0YzIzZTFlZDdiODU5
ZGI5MThhMTlhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QuanNvbgpAQCAtNTcsNyArNTcsNiBAQAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfaXNfb2JqZWN0X29yX251bGwiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX2lzX2Z1bmN0aW9uIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9pbiIsICJsZW5ndGgiIDogNCB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfdHJ5X2dldF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfZ2V0X2J5X2lkIiwgImxlbmd0aCIgOiA5ICB9LAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfZ2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfcHV0X2J5X2lkIiwgImxlbmd0aCIgOiA5IH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDMzYzA0YTg3OWZjNzgz
YjM1OWM3OGFhMTEyNmFmNTYyNTlkNjE2ZjQuLjcyMzZiNTg3MTEyZDllYzgwZDkwODU0MjdhMGU2
YzQ1MWUwYzQ0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZVVzZURlZi5oCkBAIC0xNDMsNyArMTQzLDYgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVj
b2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfcmVzb2x2ZV9zY29wZToKICAgICBjYXNlIG9wX2dldF9m
cm9tX3Njb3BlOgogICAgIGNhc2Ugb3BfdG9fcHJpbWl0aXZlOgotICAgIGNhc2Ugb3BfdHJ5X2dl
dF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9s
ZW5ndGg6CiAgICAgY2FzZSBvcF90eXBlb2Y6CkBAIC0zNjgsNyArMzY3LDYgQEAgdm9pZCBjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJh
c2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX3RhaWxfY2FsbDoKICAgICBjYXNlIG9wX2NhbGxf
ZXZhbDoKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKLSAgICBjYXNlIG9wX3RyeV9nZXRfYnlfaWQ6
CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgog
ICAgIGNhc2Ugb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNzNiODdiZGIzYmQxOGJjZDY1NmEwNmUy
ZmRmMzA4NmNjMzBiNTE2NC4uYWM0MDJlOGZhZDE3NjgzN2FkMmMyNjE2N2U4MjU3YzQ2NTAyMmEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAg
LTEwOTUsMTQgKzEwOTUsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAg
ICAgICAgcHJpbnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImluIik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIG9wX3RyeV9nZXRfYnlfaWQ6
IHsKLSAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAg
aW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBpbnQgaWQwID0gKCsraXQp
LT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBs
b2NhdGlvbiwgaXQsICJ0cnlfZ2V0X2J5X2lkIik7Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIl
cywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0
YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAppbmRleCAwNTI0OTRlODMzMThiMWRiMTU4ZWJh
N2U3OTM3MGY3MGVlMzhhNWVlLi4zMzk4MmU1MGQ5M2FmMzI1OTcwYWNhYWQxOTQ5N2VhYTM4NGI0
YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBo
aWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9y
cGhpY0FjY2Vzcy5jcHAKQEAgLTE1OSwyNiArMTU5LDYgQEAgQWNjZXNzQ2FzZTo6QWNjZXNzQ2Fz
ZSgpCiB7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjp0cnlH
ZXQoCi0gICAgVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIFByb3BlcnR5
T2Zmc2V0IG9mZnNldCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCi0gICAgY29uc3QgT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQmIGNvbmRpdGlvblNldCwgYm9vbCB2aWFQcm94eSwgV2F0Y2hwb2lu
dFNldCogYWRkaXRpb25hbFNldCkKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4g
cmVzdWx0KG5ldyBBY2Nlc3NDYXNlKCkpOwotCi0gICAgcmVzdWx0LT5tX3R5cGUgPSB0eXBlOwot
ICAgIHJlc3VsdC0+bV9vZmZzZXQgPSBvZmZzZXQ7Ci0gICAgcmVzdWx0LT5tX3N0cnVjdHVyZS5z
ZXQodm0sIG93bmVyLCBzdHJ1Y3R1cmUpOwotICAgIHJlc3VsdC0+bV9jb25kaXRpb25TZXQgPSBj
b25kaXRpb25TZXQ7Ci0KLSAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCkgewotICAg
ICAgICByZXN1bHQtPm1fcmFyZURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOwot
ICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPnZpYVByb3h5ID0gdmlhUHJveHk7Ci0gICAgICAg
IHJlc3VsdC0+bV9yYXJlRGF0YS0+YWRkaXRpb25hbFNldCA9IGFkZGl0aW9uYWxTZXQ7Ci0gICAg
fQotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+
IEFjY2Vzc0Nhc2U6OmdldCgKICAgICBWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5cGUg
dHlwZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKICAgICBj
b25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBib29sIHZpYVBy
b3h5LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LApAQCAtNzA1LDcgKzY4NSw2IEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBMb2FkOgotICAgIGNhc2UgR2V0R2V0dGVyOgogICAg
IGNhc2UgR2V0dGVyOgogICAgIGNhc2UgU2V0dGVyOgogICAgIGNhc2UgQ3VzdG9tVmFsdWVHZXR0
ZXI6CkBAIC03NDEsNyArNzIwLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZShBY2Nlc3NH
ZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQogCiAgICAgICAgIEdQUlJlZyBsb2FkZWRWYWx1ZUdQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmIChtX3R5cGUgIT0gQ3VzdG9tVmFsdWVHZXR0ZXIg
JiYgbV90eXBlICE9IEN1c3RvbUFjY2Vzc29yR2V0dGVyICYmIG1fdHlwZSAhPSBDdXN0b21WYWx1
ZVNldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tQWNjZXNzb3JTZXR0ZXIpIHsKLSAgICAgICAgICAg
IGlmIChtX3R5cGUgPT0gTG9hZCB8fCBtX3R5cGUgPT0gR2V0R2V0dGVyKQorICAgICAgICAgICAg
aWYgKG1fdHlwZSA9PSBMb2FkKQogICAgICAgICAgICAgICAgIGxvYWRlZFZhbHVlR1BSID0gdmFs
dWVSZWdzLnBheWxvYWRHUFIoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBs
b2FkZWRWYWx1ZUdQUiA9IHNjcmF0Y2hHUFI7CkBAIC03NjAsNyArNzM5LDcgQEAgdm9pZCBBY2Nl
c3NDYXNlOjpnZW5lcmF0ZShBY2Nlc3NHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQogICAgICAgICAg
ICAgaml0LmxvYWQ2NCgKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3Rv
cmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9vZmZzZXQpKSwgbG9hZGVkVmFsdWVHUFIp
OwogI2Vsc2UKLSAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCB8fCBtX3R5cGUgPT0gR2V0
R2V0dGVyKSB7CisgICAgICAgICAgICBpZiAobV90eXBlID09IExvYWQpIHsKICAgICAgICAgICAg
ICAgICBqaXQubG9hZDMyKAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc3RvcmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9vZmZzZXQpICsgVGFnT2Zmc2V0
KSwKICAgICAgICAgICAgICAgICAgICAgdmFsdWVSZWdzLnRhZ0dQUigpKTsKQEAgLTc3MSw3ICs3
NTAsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYg
c3RhdGUpCiAjZW5kaWYKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCB8
fCBtX3R5cGUgPT0gR2V0R2V0dGVyKSB7CisgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCkgewog
ICAgICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CkBAIC0xNjQyLDkgKzE2MjEsNiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgQWNjZXNzQ2FzZTo6QWNjZXNzVHlwZSB0eXBlKQogICAgIGNhc2UgQWNjZXNzQ2FzZTo6
TWlzczoKICAgICAgICAgb3V0LnByaW50KCJNaXNzIik7CiAgICAgICAgIHJldHVybjsKLSAgICBj
YXNlIEFjY2Vzc0Nhc2U6OkdldEdldHRlcjoKLSAgICAgICAgb3V0LnByaW50KCJHZXRHZXR0ZXIi
KTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQWNjZXNzQ2FzZTo6R2V0dGVyOgogICAgICAg
ICBvdXQucHJpbnQoIkdldHRlciIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCmluZGV4IDUyNmRkZmRj
NThlZjYwMzlhZjVkZmQ0ZmQ3YjNhNzAyNWVmOGZlNTIuLjg3ZjRkYzAzMzQ4MDJjYjFmMzM2MTIz
Njg3MDU3OTNmYzU1NmVjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCkBAIC01Nyw3ICs1Nyw2IEBAIHB1YmxpYzoKICAgICAg
ICAgVHJhbnNpdGlvbiwKICAgICAgICAgUmVwbGFjZSwKICAgICAgICAgTWlzcywKLSAgICAgICAg
R2V0R2V0dGVyLAogICAgICAgICBHZXR0ZXIsCiAgICAgICAgIFNldHRlciwKICAgICAgICAgQ3Vz
dG9tVmFsdWVHZXR0ZXIsCkBAIC03MSwxMSArNzAsNzcgQEAgcHVibGljOgogICAgICAgICBTdHJp
bmdMZW5ndGgKICAgICB9OwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiB0cnlHZXQoCi0gICAgICAgIFZNJiwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSwgUHJvcGVy
dHlPZmZzZXQsIFN0cnVjdHVyZSosCi0gICAgICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0
aW9uU2V0JiA9IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0KCksCi0gICAgICAgIGJvb2wgdmlh
UHJveHkgPSBmYWxzZSwKLSAgICAgICAgV2F0Y2hwb2ludFNldCogYWRkaXRpb25hbFNldCA9IG51
bGxwdHIpOworICAgIHN0YXRpYyBib29sIGlzR2V0KEFjY2Vzc1R5cGUgdHlwZSkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFRyYW5zaXRpb246CisgICAgICAg
IGNhc2UgUmVwbGFjZToKKyAgICAgICAgY2FzZSBTZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9t
VmFsdWVTZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JTZXR0ZXI6CisgICAgICAg
IGNhc2UgSW5IaXQ6CisgICAgICAgIGNhc2UgSW5NaXNzOgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBjYXNlIExvYWQ6CisgICAgICAgIGNhc2UgTWVnYW1vcnBoaWNMb2FkOgor
ICAgICAgICBjYXNlIE1pc3M6CisgICAgICAgIGNhc2UgR2V0dGVyOgorICAgICAgICBjYXNlIEN1
c3RvbVZhbHVlR2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0dGVyOgorICAg
ICAgICBjYXNlIEludHJpbnNpY0dldHRlcjoKKyAgICAgICAgY2FzZSBBcnJheUxlbmd0aDoKKyAg
ICAgICAgY2FzZSBTdHJpbmdMZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHN0YXRpYyBib29sIGlzUHV0KEFjY2Vzc1R5cGUgdHlwZSkKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIExvYWQ6CisgICAgICAg
IGNhc2UgTWVnYW1vcnBoaWNMb2FkOgorICAgICAgICBjYXNlIE1pc3M6CisgICAgICAgIGNhc2Ug
R2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlR2V0dGVyOgorICAgICAgICBjYXNlIEN1
c3RvbUFjY2Vzc29yR2V0dGVyOgorICAgICAgICBjYXNlIEludHJpbnNpY0dldHRlcjoKKyAgICAg
ICAgY2FzZSBJbkhpdDoKKyAgICAgICAgY2FzZSBJbk1pc3M6CisgICAgICAgIGNhc2UgQXJyYXlM
ZW5ndGg6CisgICAgICAgIGNhc2UgU3RyaW5nTGVuZ3RoOgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBjYXNlIFRyYW5zaXRpb246CisgICAgICAgIGNhc2UgUmVwbGFjZToKKyAg
ICAgICAgY2FzZSBTZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVTZXR0ZXI6CisgICAg
ICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JTZXR0ZXI6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBib29sIGlzSW4oQWNjZXNzVHlwZSB0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgTG9hZDoKKyAg
ICAgICAgY2FzZSBNZWdhbW9ycGhpY0xvYWQ6CisgICAgICAgIGNhc2UgTWlzczoKKyAgICAgICAg
Y2FzZSBHZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVHZXR0ZXI6CisgICAgICAgIGNh
c2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CisgICAgICAgIGNhc2UgSW50cmluc2ljR2V0dGVyOgor
ICAgICAgICBjYXNlIFRyYW5zaXRpb246CisgICAgICAgIGNhc2UgUmVwbGFjZToKKyAgICAgICAg
Y2FzZSBTZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVTZXR0ZXI6CisgICAgICAgIGNh
c2UgQ3VzdG9tQWNjZXNzb3JTZXR0ZXI6CisgICAgICAgIGNhc2UgQXJyYXlMZW5ndGg6CisgICAg
ICAgIGNhc2UgU3RyaW5nTGVuZ3RoOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBjYXNlIEluSGl0OgorICAgICAgICBjYXNlIEluTWlzczoKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nl
c3NDYXNlPiBnZXQoCiAgICAgICAgIFZNJiwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSwgUHJv
cGVydHlPZmZzZXQsIFN0cnVjdHVyZSosCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA0ZDk0YTk1ZGE5MzNhOTgzZDNi
OGFjYTU0M2RhMjQyNmI4YjFjNDJjLi44OGUwNDE2MzRmYTIwYTk1YmJhZGQxZWNkOTM0Mjk5ZmZm
MDJiNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5jcHAKQEAgLTE0OCwxMSArMTQ4LDggQEAgdm9pZCBTdHJ1Y3R1cmVTdHVi
SW5mbzo6cmVzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAgfQogCiAgICAgc3dpdGNoIChh
Y2Nlc3NUeXBlKSB7Ci0gICAgY2FzZSBBY2Nlc3NUeXBlOjpHZXRQdXJlOgotICAgICAgICByZXNl
dEdldEJ5SUQoY29kZUJsb2NrLCAqdGhpcywgR2V0QnlJREtpbmQ6OlB1cmUpOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIEFjY2Vzc1R5cGU6OkdldDoKLSAgICAgICAgcmVzZXRHZXRCeUlEKGNv
ZGVCbG9jaywgKnRoaXMsIEdldEJ5SURLaW5kOjpOb3JtYWwpOworICAgICAgICByZXNldEdldEJ5
SUQoY29kZUJsb2NrLCAqdGhpcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWNjZXNzVHlw
ZTo6UHV0OgogICAgICAgICByZXNldFB1dEJ5SUQoY29kZUJsb2NrLCAqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4
IGYzOWQ2MTQ2NWZjNzhhZGUwOGM2YmFkZGIyYjZlY2FhOWY5ZWE5OWEuLmNhOGZkZjQ5MzkwOGY3
Y2MzNjA0NGVkN2NlZDNkMDE0MzZiMGJiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC00Nyw3ICs0Nyw2IEBAIGNsYXNz
IFBvbHltb3JwaGljQWNjZXNzOwogCiBlbnVtIGNsYXNzIEFjY2Vzc1R5cGUgOiBpbnQ4X3Qgewog
ICAgIEdldCwKLSAgICBHZXRQdXJlLAogICAgIFB1dCwKICAgICBJbgogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAKaW5kZXggYjQ2YmU1ODk2YmViOWY4MTNmYmVmZGUwNDNjNjg5ODg4YjNmNjg0ZS4uNWE2ZDk5
ZTA0YTlhMmM2YWQzZTYxNjdiMDc5MWU1YjE2ODYwN2QzZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAg
LTIzNjAsMTcgKzIzNjAsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdElu
c3RhbmNlT2ZDdXN0b20oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKgogICAgIHJldHVybiBk
c3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0VHJ5R2V0QnlJZChS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5KQotewotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXBhcnNlSW5kZXgocHJvcGVydHkpLCAi
SW5kZXhlZCBwcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggdHJ5R2V0QnlJZC4iKTsK
LQotICAgIGVtaXRPcGNvZGUob3BfdHJ5X2dldF9ieV9pZCk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKGtpbGwoZHN0KSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2UtPmluZGV4
KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChwcm9wZXJ0eSkpOwot
ICAgIHJldHVybiBkc3Q7Ci19Ci0KIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
R2V0QnlJZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5KQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXBhcnNlSW5kZXgocHJv
cGVydHkpLCAiSW5kZXhlZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBoYW5kbGVkIHdpdGggZ2V0X2J5
X3ZhbC4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCBlZjg4ZTMwYTkyNGMzNTQ0M2VhODRjNGE2NGQ1MTU4
MDY0ZDc1NDE1Li4zOTI1NDQ0NDdmYWNkNzMyZWEzZDE5Y2VhMmRkNzc0ZDNjOTA5M2ZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oCkBAIC01NDAsNyArNTQwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsg
cmV0dXJuIGVtaXRVbmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRJbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdp
c3RlcklEKiBiYXNlKSB7IHJldHVybiBlbWl0QmluYXJ5T3Aob3BfaW4sIGRzdCwgcHJvcGVydHks
IGJhc2UsIE9wZXJhbmRUeXBlcygpKTsgfQogCi0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUcnlH
ZXRCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHkpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0QnlJZChSZWdpc3RlcklE
KiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KTsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdERpcmVjdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
CmluZGV4IDg5YzhhNTdkNWYzYWQ0Yjk3OGFkMjJiZjczMDdiODE4NjlkYTBhODMuLjcxM2M1MGI1
MzJkOTc1NjVlNWYyNTVjY2JhZTUzMzI0NjQxNjNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTg0MiwyMSArODQy
LDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19w
dXRCeVZhbERpcmVjdChCeXRlY29kZUdlbmVyYXQKICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmVU
b0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5VmFsKGJh
c2UuZ2V0KCksIGluZGV4LmdldCgpLCB2YWx1ZS5nZXQoKSkpOwogfQogCi1SZWdpc3RlcklEKiBC
eXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RyeUdldEJ5SWQoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQotewotICAgIEFyZ3VtZW50TGlz
dE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7Ci0gICAgbm9kZSA9IG5vZGUtPm1fbmV4
dDsKLQotICAgIC8vIFNpbmNlIHRoaXMgaXMgYSBidWlsdGluIHdlIGV4cGVjdCB0aGUgY3JlYXRv
ciB0byB1c2UgYSBzdHJpbmcgbGl0ZXJhbCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LgotICAgIEFT
U0VSVChub2RlLT5tX2V4cHItPmlzU3RyaW5nKCkpOwotICAgIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50ID0gc3RhdGljX2Nhc3Q8U3RyaW5nTm9kZSo+KG5vZGUtPm1fZXhwciktPnZhbHVlKCk7Ci0g
ICAgQVNTRVJUKCFub2RlLT5tX25leHQpOwotCi0gICAgUmVnaXN0ZXJJRCogZmluYWxEZXN0ID0g
Z2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KTsKLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVt
aXRUcnlHZXRCeUlkKGZpbmFsRGVzdCwgYmFzZS5nZXQoKSwgaWRlbnQpOwotfQotCiBSZWdpc3Rl
cklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RvU3RyaW5nKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKICAgICBBcmd1bWVu
dExpc3ROb2RlKiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZjlkZWJi
NzExNjAxODk3NmMyY2NkYjNiM2QyOTU2Y2YwNTQ2NmUyOS4uMjk1YzZhZDA0OWE1Mzk4NTI0OTJh
MzY5NmI3YTUxMGRhODA0MDg2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZCgKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdl
bigKICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2Vk
UmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5
bG9hZEdQUiksCi0gICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9h
ZEdQUiksIEFjY2Vzc1R5cGU6OkdldCk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQ
UiwgcmVzdWx0UGF5bG9hZEdQUikpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCmluZGV4IDBkZjRhMzAzYmE2MDYzZmE0N2Q5NzYyNTM4YTFlZTM5MmYyMDFl
YmQuLmE2Mjc2OGRmMWU5NjkwMDdmZDliY2UyOTgyMjE2YjFjMTM2NWEwMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMTY0
LDcgKzE2NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnCiAgICAgfQogICAgIEpJVEdldEJ5
SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwg
Y2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2VHUFIpLAotICAgICAgICBK
U1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBBY2Nlc3NUeXBlOjpHZXQpOworICAgICAgICBKU1ZhbHVl
UmVncyhyZXN1bHRHUFIpKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA2MGRhYTdiNjAzNjEzYjkyNDI5
MWQ2YzBjZTRlYzMyMzBiZDcxODRkLi41ODQwMjBiMTQ5YjMzNDVmN2I5ZjRjNTUwNWFkZDk3ZTVh
ZGEwZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC03MzMxLDcgKzczMzEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGF1dG8g
Z2VuZXJhdG9yID0gQm94PEpJVEdldEJ5SWRHZW5lcmF0b3I+OjpjcmVhdGUoCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwgbm9kZS0+b3JpZ2luLnNlbWFudGljLCBjYWxsU2l0
ZUluZGV4LAogICAgICAgICAgICAgICAgICAgICBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMo
KSwgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwKLSAgICAgICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwgQWNjZXNzVHlwZTo6R2V0KTsKKyAgICAgICAgICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSk7CiAKICAgICAgICAgICAgICAg
ICBnZW5lcmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcAppbmRleCAyZDc0Y2Y2ZjE5NTc1ZTMyNmM3YjdlZmEzY2M2MWQxZDA5ZTc5ZjI5Li40YzJm
NDc4M2NhNTIyZmNmZDQ1MjkyYTIwZWQ1NWNlODUyNzEzMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCkBAIC0yMjgsNyArMjI4LDYgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X3Njb3BlKQogICAgICAgICBERUZJTkVf
T1Aob3BfZXEpCiAgICAgICAgIERFRklORV9PUChvcF9lcV9udWxsKQotICAgICAgICBERUZJTkVf
T1Aob3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgog
ICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0
X2J5X3ZhbCkKQEAgLTQwNyw3ICs0MDYsNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93
Q2FzZXMoKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfY3JlYXRlX3RoaXMpCiAgICAg
ICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9kaXYpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9P
UChvcF9lcSkKLSAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3RyeV9nZXRfYnlfaWQpCiAg
ICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICAgICAgREVGSU5FX1NMT1dDQVNF
X09QKG9wX2dldF9ieV9pZCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV92
YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCBkMzU1YTRjMmE2MmZkZjg4NTE4MjYxOWZj
YmYwYzZlZDYwYTJlNmQ1Li43MTdkYmE0MzdkZTBkMzIyYzMwNzYzZGJmYjk5MGZlOGVmZmZhYmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTUwMiw3ICs1MDIsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9zY29wZShJbnN0cnVjdGlvbiopOwogICAg
ICAgICB2b2lkIGVtaXRfb3BfZXEoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X2VxX251bGwoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX3RyeV9nZXRfYnlf
aWQoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9ieV9pZChJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGgoSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsK
QEAgLTYxNSw3ICs2MTQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF9kaXYoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7
CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZXEoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nh
c2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2NhbGxl
ZShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKLSAgICAg
ICAgdm9pZCBlbWl0U2xvd19vcF90cnlfZ2V0X2J5X2lkKEluc3RydWN0aW9uKiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2dldF9i
eV9pZChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAg
ICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRzX2xlbmd0aChJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpOwpAQCAtNzQwLDEwICs3MzgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQywgSlNDZWxs
Kik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUosIGludCwgR1BSUmVnKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VTc2lKSSwgaW50
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZywgVW5pcXVlZFN0cmluZ0ltcGwqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZVRhZywgSl9K
SVRPcGVyYXRpb25fRVNzaUpJLCBpbnQsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnLCBVbmlx
dWVkU3RyaW5nSW1wbCopOwogI2Vsc2UKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FU3NpSkksIGludCwgU3RydWN0dXJlU3R1YkluZm8q
LCBHUFJSZWcsIEdQUlJlZywgVW5pcXVlZFN0cmluZ0ltcGwqKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25f
RVNzaUpJLCBpbnQsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnLCBHUFJSZWcsIFVuaXF1ZWRT
dHJpbmdJbXBsKik7CiAjZW5kaWYKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNvbnN0IElkZW50aWZp
ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvci5jcHAKaW5kZXggMjRmZTlkMzcwNjU2MDgwMTI5YjBhYzQzZDk3Njg5OTdiMDli
M2ZkNC4uM2NhNTZmNjVkOTUzZjczYTQ2OGFkMDczMjAwOTBiMmU5ZTMyY2U1MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5j
cHAKQEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIEpJVEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGhDaGVja3MoTWFjcm9Bc3NlbWJsZXImIGppdCkKIAogSklUR2V0QnlJZEdlbmVyYXRvcjo6
SklUR2V0QnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlLCBjb25zdCBSZWdpc3RlclNldCYg
dXNlZFJlZ2lzdGVycywKLSAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwg
QWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQorICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdz
IHZhbHVlKQogICAgIDogSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAgY29kZUJsb2NrLCBjb2Rl
T3JpZ2luLCBjYWxsU2l0ZSwgYWNjZXNzVHlwZSwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUp
CisgICAgICAgIGNvZGVCbG9jaywgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6Okdl
dCwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoYmFz
ZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BSKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCmluZGV4IDI1Y2RhMTU2
N2MwMjhiOTE1Nzc4NTk4N2JhYWVjYmY3MmVkZDAwMWYuLjBhZGEwZjhiNDQ2ZjZjNWMwZWUzNzZk
OWY4ZGVmYjkxYjE0MjhiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAg
ICAgSklUR2V0QnlJZEdlbmVyYXRvcigKICAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwg
Q2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVS
ZWdzIGJhc2UsCi0gICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBBY2Nlc3NUeXBlKTsKKyAgICAg
ICAgSlNWYWx1ZVJlZ3MgdmFsdWUpOwogICAgIAogICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChN
YWNyb0Fzc2VtYmxlciYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
aW5kZXggZTFlZWVjMzA3ZWYwMjc0YzIzMzg3YTk1M2JiN2NkODMyMWI1OTUxYy4uOGQ4MTVhOWU0
MWVmYWIxNzY1NTJlNDZhZDYzNTQyYWUwZWIyMjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmgKQEAgLTQ1OSwxMiArNDU5LDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVpKIG9wZXJh
dGkKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwog
fQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEdQUlJlZyBhcmcxLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQotewot
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwg
YXJnMSwgVHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwotfQotCiBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQ
cm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyBhcmcxLCBVbmlxdWVkU3RyaW5nSW1wbCog
dWlkKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKHN0
dWJJbmZvKSwgYXJnMSwgVHJ1c3RlZEltbVB0cih1aWQpKTsKQEAgLTY0OCwxMiArNjQyLDYgQEAg
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUogb3BlcmF0aW8KICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRp
b25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCi1BTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FU3NpSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoc3R1
YkluZm8pLCBhcmcxUGF5bG9hZCwgYXJnMVRhZywgVHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0
aW9uLCBkc3QpOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FU3NpSkkg
b3BlcmF0aW9uLCBpbnQgZHN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyBh
cmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiB7CiAg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBh
cmcxUGF5bG9hZCwgYXJnMVRhZywgVHJ1c3RlZEltbVB0cih1aWQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGQxOWMwMWMzOGUyNWQwN2FjMGMx
MDg0YzgzMzk1NzczZDFiMmNkN2EuLjlkYjhjNzIyZTE5YzA5NzRjZTY3NjBkZDc2OGE0YzNkOTBk
YzRmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApA
QCAtMTU0LDM2ICsxNTQsNiBAQCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3Ry
dWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3Vu
dDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlHZXRCeUlk
KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQotewotICAgIFZNKiB2bSA9ICZleGVj
LT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAg
IElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCB1aWQpOwotICAgIHN0
dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwotCi0gICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoYmFzZSk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KTsKLSAgICBiYXNlVmFs
dWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKLQotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqIHVpZCkKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICBJZGVudGlmaWVyIGlkZW50
ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgdWlkKTsKLQotICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGJhc2UpOwotICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1
ZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7Ci0KLSAgICBi
YXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKLSAgICBpZiAoc3R1
YkluZm8tPmNvbnNpZGVyQ2FjaGluZygpICYmICFzbG90LmlzVGFpbnRlZEJ5UHJveHkoKSAmJiAo
c2xvdC5pc0NhY2hlYWJsZVZhbHVlKCkgfHwgc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpIHx8IHNs
b3QuaXNVbnNldCgpKSkKLSAgICAgICAgcmVwYXRjaEdldEJ5SUQoZXhlYywgYmFzZVZhbHVlLCBp
ZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUlES2luZDo6UHVyZSk7Ci0KLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKLX0KLQogRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpAQCAtMjE5LDcgKzE4OSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlCiAgICAgCiAgICAgYm9vbCBoYXNSZXN1bHQgPSBi
YXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKICAgICBpZiAoc3R1
YkluZm8tPmNvbnNpZGVyQ2FjaGluZygpKQotICAgICAgICByZXBhdGNoR2V0QnlJRChleGVjLCBi
YXNlVmFsdWUsIGlkZW50LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5SURLaW5kOjpOb3JtYWwpOwor
ICAgICAgICByZXBhdGNoR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCAqc3R1
YkluZm8pOwogICAgIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0PyBzbG90
LmdldFZhbHVlKGV4ZWMsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCA4ZTgyYjNiOTA3NWQwYWYzNzBlN2Vl
NTY5ZGRmM2M5NTdjMTQxZTkzLi45NDFhOTkzYTNhNzQ1MzQ2MWJjMjMxMGU4MDMxMWEyNGJjOTI1
YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMjg3
LDEwICsyODcsOSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dPdXRPZkJvdW5k
c0FjY2Vzc0Vycm9yKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTAogI2VuZGlmCiBpbnQzMl90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVS
TkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2so
RXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25UcnlHZXRCeUlkKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2Rl
ZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUoRXhlY1N0YXRlKiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
SWQoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBVbmlx
dWVkU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJ
bXBsKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Jbk9wdGltaXplKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgSlNDZWxsKiwgVW5p
cXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkluKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgSlNDZWxsKiwg
VW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDk1YjE3YTY3YjA0MDM3ZWEyYmEy
MzgyMmVjYmJmZDA2ZGNlNWI0NTAuLmRkZjhlMWU3NjNmNzczYmZhYjVmZjc4ZDU5NmNkZTA3Zjhj
Zjc5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRH
ZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW8KIAogICAg
IEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdp
bihtX2J5dGVjb2RlT2Zmc2V0KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlT2Zmc2V0KSwgUmVn
aXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBKU1ZhbHVlUmVn
cyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0KTsKKyAgICAgICAg
SlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCkpOwogICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKIAogICAgIGZhc3REb25lQ2FzZSA9IGp1bXAoKTsKQEAgLTUzMSw0
MyArNTMxLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGVsX2J5X2lkKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25EZWxldGVCeUlkLCBk
c3QsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpKTsKIH0KIAotdm9p
ZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQotewotICAgIGludCByZXN1bHRWUmVnID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKLSAgICBpbnQgYmFzZVZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OwotCi0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlVlJlZywgcmVnVDApOwotCi0gICAg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVlJlZyk7Ci0KLSAgICBKSVRH
ZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9i
eXRlY29kZU9mZnNldCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVy
U2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEFjY2Vzc1R5cGU6OkdldFB1cmUpOwotICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKLSAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1w
KCkpOwotICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7Ci0gICAgCi0gICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3RlcihyZXN1bHRWUmVnKTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RyeV9n
ZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYgaXRlcikKLXsKLSAgICBpbnQgcmVzdWx0VlJlZyA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Ci0gICAgaW50IGJhc2VWUmVnID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9ICYobV9j
b2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwot
Ci0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZVZSZWcpOwotICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsKLQotICAgIEpJVEdldEJ5SWRHZW5lcmF0b3ImIGdlbiA9IG1fZ2V0QnlJ
ZHNbbV9nZXRCeUlkSW5kZXgrK107Ci0KLSAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwo
KTsKLQotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVHJ5R2V0QnlJZE9w
dGltaXplLCByZXN1bHRWUmVnLCBnZW4uc3R1YkluZm8oKSwgcmVnVDAsIGlkZW50LT5pbXBsKCkp
OwotICAgIAotICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7
Ci19Ci0KIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogewogICAgIGludCByZXN1bHRWUmVnID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKQEAgLTU4Myw3ICs1NDYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlf
aWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVEdldEJ5SWRHZW5l
cmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zm
c2V0KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFs
dWVSZWdzKHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMCkpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlz
KTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMu
YXBwZW5kKGdlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA1MWY5NmI5MzMyODA0MGU2ZjdjZmQ4MTAyMmZkOTA4
OGU5YTZhYTIxLi4yN2Y5NDA0NGRmMDczZDlmMGU5MTYzMDEzOTFlMjIwOWEyNDAwNmRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAKQEAgLTI4Miw3ICsyODIsNyBAQCBKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdl
dEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3RpbwogCiAgICAg
SklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2lu
KG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlvbiksIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgSlNWYWx1ZVJl
Z3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQWNjZXNz
VHlwZTo6R2V0KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwogCiAgICAgZmFzdERvbmVDYXNlID0ganVtcCgpOwpAQCAtNTczLDQzICs1NzMsNiBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4Kys7CiB9CiAK
LXZvaWQgSklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKLXsKLSAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKLSAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Ci0KLSAg
ICBlbWl0TG9hZChiYXNlLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0KLSAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIENhbGxTaXRl
SW5kZXgoY3VycmVudEluc3RydWN0aW9uKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJl
Z2lzdGVycygpLAotICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpHZXRQdXJlKTsKLSAgICBnZW4uZ2Vu
ZXJhdGVGYXN0UGF0aCgqdGhpcyk7Ci0gICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgp
KTsKLSAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwotICAgIAotICAgIGVtaXRTdG9yZShkc3Qs
IHJlZ1QxLCByZWdUMCk7Ci19Ci0KLXZvaWQgSklUOjplbWl0U2xvd19vcF90cnlfZ2V0X2J5X2lk
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImIGl0ZXIpCi17Ci0gICAgaW50IHJlc3VsdFZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOwotICAgIGludCBiYXNlVlJlZyA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7Ci0gICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSAmKG1fY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLQotICAgIGxp
bmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2VWUmVnKTsKLSAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7Ci0KLSAgICBKSVRHZXRCeUlkR2VuZXJhdG9yJiBnZW4gPSBtX2dldEJ5SWRzW21fZ2V0
QnlJZEluZGV4KytdOwotCi0gICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7Ci0KLSAg
ICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwg
cmVzdWx0VlJlZywgZ2VuLnN0dWJJbmZvKCksIHJlZ1QxLCByZWdUMCwgaWRlbnQtPmltcGwoKSk7
Ci0gICAgCi0gICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsK
LX0KLQotCiB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKQEAgLTYyNCw3ICs1ODcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwg
Q2FsbFNpdGVJbmRleChjdXJyZW50SW5zdHJ1Y3Rpb24pLCBSZWdpc3RlclNldDo6c3R1YlVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdU
MCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldCk7CisgICAgICAg
IEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCkpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShn
ZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCA4MWZlM2IwOWY2MTEzNDY4MDQzYjMwYmYy
ZTgzNzU3NjFkZDE1MmI4Li5lNGNhMzBkZDgxZjUzMjI2Y2QwYWVjMDVmODFiMjE2YmFhMjRlNzJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTkzLDcgKzkzLDcgQEAg
c3RhdGljIHZvaWQgcmVwYXRjaENhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVMb2NhdGlv
bkNhbGwgY2FsbCwgRnVuY3Rpb25QdHIKIAogc3RhdGljIHZvaWQgcmVwYXRjaEJ5SWRTZWxmQWNj
ZXNzKAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1Yklu
Zm8sIFN0cnVjdHVyZSogc3RydWN0dXJlLAotICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgY29u
c3QgRnVuY3Rpb25QdHImIHNsb3dQYXRoRnVuY3Rpb24sCisgICAgUHJvcGVydHlPZmZzZXQgb2Zm
c2V0LCBjb25zdCBGdW5jdGlvblB0ciAmc2xvd1BhdGhGdW5jdGlvbiwKICAgICBib29sIGNvbXBh
Y3QpCiB7CiAgICAgLy8gT25seSBvcHRpbWl6ZSBvbmNlIQpAQCAtMjEzLDIxICsyMTMsNyBAQCBz
dGF0aWMgYm9vbCBmb3JjZUlDRmFpbHVyZShFeGVjU3RhdGUqKQogICAgIHJldHVybiBPcHRpb25z
Ojpmb3JjZUlDRmFpbHVyZSgpOwogfQogCi1pbmxpbmUgSl9KSVRPcGVyYXRpb25fRVNzaUpJIGFw
cHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbihHZXRCeUlES2luZCBraW5kKQotewot
ICAgIGlmIChraW5kID09IEdldEJ5SURLaW5kOjpOb3JtYWwpCi0gICAgICAgIHJldHVybiBvcGVy
YXRpb25HZXRCeUlkT3B0aW1pemU7Ci0gICAgcmV0dXJuIG9wZXJhdGlvblRyeUdldEJ5SWRPcHRp
bWl6ZTsKLX0KLQotaW5saW5lIEpfSklUT3BlcmF0aW9uX0VTc2lKSSBhcHByb3ByaWF0ZUdlbmVy
aWNHZXRCeUlkRnVuY3Rpb24oR2V0QnlJREtpbmQga2luZCkKLXsKLSAgICBpZiAoa2luZCA9PSBH
ZXRCeUlES2luZDo6Tm9ybWFsKQotICAgICAgICByZXR1cm4gb3BlcmF0aW9uR2V0QnlJZDsKLSAg
ICByZXR1cm4gb3BlcmF0aW9uVHJ5R2V0QnlJZDsKLX0KLQotc3RhdGljIElubGluZUNhY2hlQWN0
aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBHZXRCeUlES2luZCBraW5kKQorc3RhdGljIElu
bGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
YmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQogewogICAgIGlmIChmb3Jj
ZUlDRmFpbHVyZShleGVjKSkKICAgICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7CkBAIC0yNzYs
NyArMjYyLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgICAgICYmICFzdHJ1
Y3R1cmUtPm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQoKQogICAgICAgICAgICAgJiYgIWxv
YWRUYXJnZXRGcm9tUHJveHkpIHsKICAgICAgICAgICAgIHN0cnVjdHVyZS0+c3RhcnRXYXRjaGlu
Z1Byb3BlcnR5Rm9yUmVwbGFjZW1lbnRzKHZtLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKLSAgICAg
ICAgICAgIHJlcGF0Y2hCeUlkU2VsZkFjY2Vzcyhjb2RlQmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1
cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5j
dGlvbihraW5kKSwgdHJ1ZSk7CisgICAgICAgICAgICByZXBhdGNoQnlJZFNlbGZBY2Nlc3MoY29k
ZUJsb2NrLCBzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpLCBvcGVyYXRp
b25HZXRCeUlkT3B0aW1pemUsIHRydWUpOwogICAgICAgICAgICAgc3R1YkluZm8uaW5pdEdldEJ5
SWRTZWxmKGNvZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAg
ICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgIH0KQEAgLTMwOSwxOSArMjk1
LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFi
bGVHZXR0ZXIoKSkKICAgICAgICAgICAgIGdldHRlciA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlv
bio+KHNsb3QuZ2V0dGVyU2V0dGVyKCktPmdldHRlcigpKTsKIAotICAgICAgICBpZiAoa2luZCA9
PSBHZXRCeUlES2luZDo6UHVyZSkgewotICAgICAgICAgICAgQWNjZXNzQ2FzZTo6QWNjZXNzVHlw
ZSB0eXBlOwotICAgICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVWYWx1ZSgpKQotICAgICAg
ICAgICAgICAgIHR5cGUgPSBBY2Nlc3NDYXNlOjpMb2FkOwotICAgICAgICAgICAgZWxzZSBpZiAo
c2xvdC5pc1Vuc2V0KCkpCi0gICAgICAgICAgICAgICAgdHlwZSA9IEFjY2Vzc0Nhc2U6Ok1pc3M7
Ci0gICAgICAgICAgICBlbHNlIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpCi0gICAgICAg
ICAgICAgICAgdHlwZSA9IEFjY2Vzc0Nhc2U6OkdldEdldHRlcjsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgICAg
ICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6dHJ5R2V0KHZtLCBjb2RlQmxvY2ssIHR5cGUsIG9m
ZnNldCwgc3RydWN0dXJlLCBjb25kaXRpb25TZXQsIGxvYWRUYXJnZXRGcm9tUHJveHksIHNsb3Qu
d2F0Y2hwb2ludFNldCgpKTsKLSAgICAgICAgfSBlbHNlIGlmICghbG9hZFRhcmdldEZyb21Qcm94
eSAmJiBnZXR0ZXIgJiYgQWNjZXNzQ2FzZTo6Y2FuRW1pdEludHJpbnNpY0dldHRlcihnZXR0ZXIs
IHN0cnVjdHVyZSkpCisgICAgICAgIGlmICghbG9hZFRhcmdldEZyb21Qcm94eSAmJiBnZXR0ZXIg
JiYgQWNjZXNzQ2FzZTo6Y2FuRW1pdEludHJpbnNpY0dldHRlcihnZXR0ZXIsIHN0cnVjdHVyZSkp
CiAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Z2V0SW50cmluc2ljKHZtLCBjb2Rl
QmxvY2ssIGdldHRlciwgc2xvdC5jYWNoZWRPZmZzZXQoKSwgc3RydWN0dXJlLCBjb25kaXRpb25T
ZXQpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFjY2Vzc0Nhc2U6OkFjY2Vzc1R5cGUg
dHlwZTsKQEAgLTM1NiwxMiArMzMwLDEyIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlD
YWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAg
cmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKIH0KIAotdm9pZCByZXBhdGNoR2V0QnlJRChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZv
LCBHZXRCeUlES2luZCBraW5kKQordm9pZCByZXBhdGNoR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0
IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQogewogICAg
IEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGV4ZWMtPmNvZGVCbG9jaygpLT5tX2xv
Y2ssIGV4ZWMtPnZtKCkuaGVhcCk7CiAgICAgCi0gICAgaWYgKHRyeUNhY2hlR2V0QnlJRChleGVj
LCBiYXNlVmFsdWUsIHByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVV
cE9uQ2FjaGUpCi0gICAgICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5m
by5jYWxsUmV0dXJuTG9jYXRpb24sIGFwcHJvcHJpYXRlR2VuZXJpY0dldEJ5SWRGdW5jdGlvbihr
aW5kKSk7CisgICAgaWYgKHRyeUNhY2hlR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIHByb3BlcnR5
TmFtZSwgc2xvdCwgc3R1YkluZm8pID09IEdpdmVVcE9uQ2FjaGUpCisgICAgICAgIHJlcGF0Y2hD
YWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJh
dGlvbkdldEJ5SWQpOwogfQogCiBzdGF0aWMgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBhcHByb3By
aWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oY29uc3QgUHV0UHJvcGVydHlTbG90ICZzbG90LCBQ
dXRLaW5kIHB1dEtpbmQpCkBAIC05MzYsOSArOTEwLDkgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWND
YWxsKAogICAgICAgICBjYWxsTGlua0luZm8ucmVtb3ZlKCk7CiB9CiAKLXZvaWQgcmVzZXRHZXRC
eUlEKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sIEdl
dEJ5SURLaW5kIGtpbmQpCit2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqIGNvZGVCbG9jaywg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQogewotICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9j
aywgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRC
eUlkRnVuY3Rpb24oa2luZCkpOworICAgIHJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8u
Y2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUpOwogICAgIHJlc2V0
R2V0QnlJRENoZWNrQW5kTG9hZChzdHViSW5mbyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0
Y2hKdW1wKHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5qdW1wQXRPZmZzZXQoc3R1YkluZm8u
cGF0Y2guZGVsdGFDYWxsVG9KdW1wKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVs
QXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9TbG93Q2FzZSkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guaAppbmRleCAyMDQ3NjJkMDZjODhjZDkyODgwMTk5ZDhiN2Qz
ZDc1NWM5OTk4YWI2Li40NDNlOTQ0YTM1NjYwN2NmYTcwZGMyN2Y5ZWVjZWEwODQ5ZDIwOTBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaApAQCAtMzUsMTIgKzM1LDcgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLWVudW0gY2xhc3MgR2V0QnlJREtpbmQgewotICAgIE5vcm1hbCwKLSAg
ICBQdXJlCi19OwotCi12b2lkIHJlcGF0Y2hHZXRCeUlEKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYs
IEdldEJ5SURLaW5kKTsKK3ZvaWQgcmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
Y29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZv
Jik7CiB2b2lkIGJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lk
IGJ1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVw
YXRjaFB1dEJ5SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRp
ZmllciYsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2lu
ZCk7CkBAIC01MSw3ICs0Niw3IEBAIHZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2FsbExp
bmtJbmZvJik7CiB2b2lkIHVubGlua0ZvcihWTSYsIENhbGxMaW5rSW5mbyYpOwogdm9pZCBsaW5r
VmlydHVhbEZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mKTsKIHZvaWQgbGlua1BvbHltb3Jw
aGljQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDYWxsVmFyaWFudCk7Ci12b2lkIHJl
c2V0R2V0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIEdldEJ5SURLaW5kKTsK
K3ZvaWQgcmVzZXRHZXRCeUlEKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lk
IHJlc2V0UHV0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNl
dEluKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
aW5kZXggODU2MjFiYjhlMzZkODVjNzAxNmQxZWExNzIwZTkyN2E5MjlmYWE4OS4uMGY0NmUyZDgz
NTQyOTNkN2YxM2MxZjI2ZDI3ZDIxZmM4YjIyNjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAg
LTIzLDcgKzIzLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIkFycmF5UHJv
dG90eXBlLmgiCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiQnV0
dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCkBAIC0zMyw3ICszMiw2IEBACiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVy
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5o
IgotI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhlYXBQcm9maWxlci5oIgog
I2luY2x1ZGUgIkhlYXBTbmFwc2hvdEJ1aWxkZXIuaCIKICNpbmNsdWRlICJIZWFwU3RhdGlzdGlj
cy5oIgpAQCAtNTU0LDcgKzU1Miw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3JlYXRlUHJveHkoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVBcnJheShFeGVjU3RhdGUqKTsK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSW1wdXJl
R2V0dGVyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoRXhlY1N0YXRlKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4oRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVy
ZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSopOwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblNldEVsZW1lbnRSb290KEV4ZWNTdGF0ZSopOwpAQCAtNTc1LDcg
KzU3Miw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRWRl
bkdDKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Gb3JjZUdDU2xvd1BhdGhzKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IZWFwU2l6ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQWRkcmVzc09mKEV4ZWNTdGF0ZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRHZXR0ZXJTZXR0
ZXIoRXhlY1N0YXRlKik7CiAjaWZuZGVmIE5ERUJVRwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQ2FsbEZyYW1lKEV4ZWNTdGF0ZSopOwogI2VuZGlmCkBA
IC03NDcsNyArNzQzLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZv
cmNlR0NTbG93UGF0aHMiLCBmdW5jdGlvbkZvcmNlR0NTbG93UGF0aHMsIDApOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImdjSGVhcFNpemUiLCBmdW5jdGlvbkhlYXBTaXplLCAwKTsKICAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJhZGRyZXNzT2YiLCBmdW5jdGlvbkFkZHJlc3NPZiwgMSk7Ci0g
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0R2V0dGVyU2V0dGVyIiwgZnVuY3Rpb25HZXRHZXR0
ZXJTZXR0ZXIsIDIpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJk
dW1wQ2FsbEZyYW1lIiwgZnVuY3Rpb25EdW1wQ2FsbEZyYW1lLCAwKTsKICNlbmRpZgpAQCAtNzk3
LDcgKzc5Miw2IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0
ZUltcHVyZUdldHRlciIsIGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyLCAxKTsKICAgICAgICAg
YWRkRnVuY3Rpb24odm0sICJjcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QiLCBmdW5jdGlvbkNyZWF0
ZUN1c3RvbUdldHRlck9iamVjdCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRl
QnVpbHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAic2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUiLCBmdW5jdGlvblNldEltcHVyZUdldHRlckRl
bGVnYXRlLCAyKTsKIAogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBUeXBlc0ZvckFsbFZh
cmlhYmxlcyIsIGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVzICwgMCk7CkBAIC0xMzM4
LDMwICsxMzMyLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJl
c3NPZihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldEdldHRlclNldHRlcihF
eGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDAp
OwotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIEpTVmFsdWUgcHJvcGVydHkgPSBleGVjLT5hcmd1
bWVudCgxKTsKLSAgICBpZiAoIXByb3BlcnR5LmlzU3RyaW5nKCkpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBJZGVudGlmaWVyIGlkZW50ID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmZXhlYy0+dm0oKSwgcHJvcGVydHkudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKTsKLQotICAgIFByb3BlcnR5U2xvdCBzbG90KHZhbHVlLCBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KTsKLSAgICB2YWx1ZS5nZXRQcm9w
ZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpOwotCi0gICAgSlNWYWx1ZSByZXN1bHQ7Ci0gICAg
aWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkKLSAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXR0
ZXJTZXR0ZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOwotCi0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uVmVyc2lvbihFeGVjU3RhdGUqKQogewogICAgIC8vIFdlIG5lZWQg
dGhpcyBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBNb3ppbGxhIEpTIHRlc3Rz
IGJ1dCBmb3Igbm93CkBAIC0xNzUxLDIyICsxNzIxLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCdWlsdGluKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSB8fCAhZXhlYy0+YXJndW1lbnQoMCkuaXNTdHJp
bmcoKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQot
ICAgIFN0cmluZyBmdW5jdGlvblRleHQgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYyk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0KLSAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwotICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSA9IG1ha2VTb3VyY2UoZnVuY3Rpb25U
ZXh0KTsKLSAgICBKU0Z1bmN0aW9uKiBmdW5jID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1
bmN0aW9uKHZtLCBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGUodm0sIHNvdXJj
ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmb28iKSwgQ29uc3RydWN0b3JLaW5kOjpO
b25lLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QpLT5saW5rKHZtLCBzb3VyY2Up
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShmdW5jKTsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNo
ZWNrTW9kdWxlU3ludGF4KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBTdHJpbmcgc291cmNlID0g
ZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCBmMTQwY2EzMWJiNzI1NTQ1ZGYy
YWUyMGY3ZTBmMjY1NzBjYmYyNWEyLi4yMTQ4OGE5ZDc1YWQ4ZTZhNzQwNzMwZmNlMWVhZmMxZDY4
NjY2Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRh
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAt
MTQ0LDkgKzE0NCw5IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAg
IAogICAgIFNUQVRJQ19BU1NFUlQoU3RyaW5nVHlwZSA9PSA2KTsKICAgICBTVEFUSUNfQVNTRVJU
KFN5bWJvbFR5cGUgPT0gNyk7Ci0gICAgU1RBVElDX0FTU0VSVChPYmplY3RUeXBlID09IDIwKTsK
LSAgICBTVEFUSUNfQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAyMSk7Ci0gICAgU1RBVElDX0FT
U0VSVChKU0Z1bmN0aW9uVHlwZSA9PSAyMyk7CisgICAgU1RBVElDX0FTU0VSVChPYmplY3RUeXBl
ID09IDIxKTsKKyAgICBTVEFUSUNfQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAyMik7CisgICAg
U1RBVElDX0FTU0VSVChKU0Z1bmN0aW9uVHlwZSA9PSAyNCk7CiAgICAgU1RBVElDX0FTU0VSVChN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkID09IDEpOwogICAgIFNUQVRJQ19BU1NFUlQoSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSA9PSAyKTsKICAgICBTVEFUSUNfQVNTRVJUKEZpcnN0Q29uc3Rh
bnRSZWdpc3RlckluZGV4ID09IDB4NDAwMDAwMDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNDI0MDdiY2MxMmU5OTJkZGFiYjY2ZTE1
N2UzZTBmM2JkMWM0YjcyNy4uN2UzNTE3NTFjYWIwYjFkNjUzMTg3MzkwYmYzNWQxZjIyYTQxMWQ1
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CkBAIC01NDUsMTkgKzU0NSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0
YW5jZW9mX2N1c3RvbSkKICAgICBMTElOVF9SRVRVUk4ocmVzdWx0KTsKIH0KIAotTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpCi17Ci0gICAgTExJTlRfQkVHSU4o
KTsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwotICAgIGNv
bnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKHBjWzNdLnUub3Bl
cmFuZCk7Ci0gICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsK
LSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6UHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7Ci0KLSAgICBiYXNlVmFsdWUuZ2V0
UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKLQotICAgIExMSU5UX1JFVFVSTihzbG90
LmdldFB1cmVSZXN1bHQoKSk7Ci19Ci0KIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9n
ZXRfYnlfaWQpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5kZXggZTNkNDFlNDU4MjdmYjBkYzViZmQ1MTVlNjMw
N2MyMTEwM2EwM2YzNi4uZWM1NmJhZTczNDgzNWY4NjNlNGE2YTY1MjY0YTk4MThlMDExZDkyNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTY5
LDcgKzY5LDYgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJy
YXlfYnVmZmVyKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X3Jl
Z2V4cCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2Yp
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mX2N1c3Rv
bSk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQp
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCk7
CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
aW5kZXggNzA5MDdhNDIzZTJmY2I3ODU0NTg2ZDM2MTlkMzg1YTBkYmVjMmM0YS4uZTU2NWQ2N2Fj
NzE0OWFlMTdiMGExMDZlYjg1NDMzYWU5MDhlNWMzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMzI2LDkgKzMyNiw5
IEBAIGNvbnN0IFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFwZSA9IDMwCiAjIFR5cGUgY29uc3RhbnRz
LgogY29uc3QgU3RyaW5nVHlwZSA9IDYKIGNvbnN0IFN5bWJvbFR5cGUgPSA3Ci1jb25zdCBPYmpl
Y3RUeXBlID0gMjAKLWNvbnN0IEZpbmFsT2JqZWN0VHlwZSA9IDIxCi1jb25zdCBKU0Z1bmN0aW9u
VHlwZSA9IDIzCitjb25zdCBPYmplY3RUeXBlID0gMjEKK2NvbnN0IEZpbmFsT2JqZWN0VHlwZSA9
IDIyCitjb25zdCBKU0Z1bmN0aW9uVHlwZSA9IDI0CiAKICMgVHlwZSBmbGFncyBjb25zdGFudHMu
CiBjb25zdCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMQpAQCAtMTMwMSwxMiArMTMwMSw2IEBA
IF9sbGludF9vcF9pbjoKICAgICBkaXNwYXRjaCg0KQogCiAKLV9sbGludF9vcF90cnlfZ2V0X2J5
X2lkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF90cnlfZ2V0X2J5X2lkKQotICAgIGRpc3BhdGNoKDQpCi0KLQogX2xsaW50X29wX2RlbF9i
eV9pZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZGVsX2J5X2lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2V0dGVyU2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRl
clNldHRlci5jcHAKaW5kZXggYThmZGE0OWIzZmM1YmI5MDBjYjgyMDIwYzg0NTc1OWY2MTIzODVi
Zi4uODczMDc5NGEzNDI4ZjZkNWVhOGU5YTJiOGNiYTIxNGMxN2JjODQ0NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuY3BwCkBAIC0zMyw3ICszMyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVD
VElCTEUoR2V0dGVyU2V0dGVyKTsKIAotY29uc3QgQ2xhc3NJbmZvIEdldHRlclNldHRlcjo6c19p
bmZvID0geyAiR2V0dGVyU2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShHZXR0ZXJTZXR0ZXIpIH07Citjb25zdCBDbGFzc0luZm8gR2V0dGVyU2V0dGVyOjpzX2lu
Zm8gPSB7ICJHZXR0ZXJTZXR0ZXIiLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdldHRlclNl
dHRlcikgfTsKIAogdm9pZCBHZXR0ZXJTZXR0ZXI6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2V0dGVyU2V0dGVyLmgKaW5kZXggMWI0N2U2OGI2YzVhZTZhYWE3MjZlMjc5NzA3NTMxM2Y4
NDBmMmQ1NC4uMmIyMmIzZTBiMGMwMGM5MjdiZjVjYmQ5MDA0OWNmZTkxOGU1MTdiYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKQEAgLTQxLDIwICs0
MSwyMCBAQCBjbGFzcyBKU09iamVjdDsKIC8vIHRoYXQgaWYgYSBwcm9wZXJ0eSBob2xkaW5nIGEg
R2V0dGVyU2V0dGVyIHJlZmVyZW5jZSBpcyBjb25zdGFudC1pbmZlcnJlZCBhbmQKIC8vIHRoYXQg
Y29uc3RhbnQgaXMgb2JzZXJ2ZWQgdG8gaGF2ZSBhIG5vbi1udWxsIHNldHRlciAob3IgZ2V0dGVy
KSB0aGVuIHdlIGNhbgogLy8gY29uc3RhbnQgZm9sZCB0aGF0IHNldHRlciAob3IgZ2V0dGVyKS4K
LWNsYXNzIEdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK2Ns
YXNzIEdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIGZyaWVuZCBjbGFz
cyBKSVQ7Ci0gICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CisKIHByaXZhdGU6CiAg
ICAgR2V0dGVyU2V0dGVyKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAg
ICAgICAgOiBCYXNlKHZtLCB2bS5nZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCisgICAgICAg
IDogSlNDZWxsKHZtLCB2bS5nZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgewogICAg
ICAgICBtX2dldHRlci5zZXQodm0sIHRoaXMsIGdsb2JhbE9iamVjdC0+bnVsbEdldHRlckZ1bmN0
aW9uKCkpOwogICAgICAgICBtX3NldHRlci5zZXQodm0sIHRoaXMsIGdsb2JhbE9iamVjdC0+bnVs
bFNldHRlckZ1bmN0aW9uKCkpOwogICAgIH0KIAogcHVibGljOgotCi0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHR5cGVkZWYg
SlNDZWxsIEJhc2U7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGlj
IEdldHRlclNldHRlciogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICB7CkBAIC0xMjgsMTIgKzEyOCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihHZXR0ZXJTZXR0ZXIsIG1fc2V0dGVyKTsKICAgICB9CiAKLSAgICBERUNM
QVJFX0VYUE9SVF9JTkZPOwotCi0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKSB7IFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBmYWxzZTsgfQotICAgIHN0YXRpYyBib29s
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgc3RhdGljIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wpIHsgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3RhdGljIGJvb2wg
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSB7IFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBmYWxzZTsgfQorICAgIERFQ0xBUkVfSU5G
TzsKIAogcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fZ2V0dGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAyMTkzNGJjNmIzZmU4YzM2MjFh
NmRhMDJlNjMxMTVjYmE1Y2E5NjBhLi5mZmY0MDQyMGNiNWE0ODBlY2M1ZjE3ZTlhY2Y5OTA3Njc3
YWY5MzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtMzUsNiAr
MzUsNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIFN0cmluZ1R5cGUsCiAgICAgU3lt
Ym9sVHlwZSwKIAorICAgIEdldHRlclNldHRlclR5cGUsCiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVy
VHlwZSwKICAgICBBUElWYWx1ZVdyYXBwZXJUeXBlLAogCkBAIC03NCw3ICs3NSw2IEBAIGVudW0g
SlNUeXBlIDogdWludDhfdCB7CiAgICAgRmxvYXQ2NEFycmF5VHlwZSwKICAgICBEYXRhVmlld1R5
cGUsCiAKLSAgICBHZXR0ZXJTZXR0ZXJUeXBlLAogICAgIEdsb2JhbE9iamVjdFR5cGUsCiAgICAg
TGV4aWNhbEVudmlyb25tZW50VHlwZSwKICAgICBHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnRUeXBl
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKaW5k
ZXggMDQxMDEzOTQzOGI1NGNkZDkyOGYwMTMyN2U2N2Y4ODIyMDUwZTg2Ni4uYWQ1NTVjN2NmYWU1
ZjNiM2EyNjljNWQ4NGY2MzNkNzcyOWM1N2JiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCkBAIC0zOSwyMSArMzksNCBAQCBKU1ZhbHVlIFBy
b3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkgYwogICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5n
ZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7
CiB9CiAKLUpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKLXsKLSAg
ICBKU1ZhbHVlIHJlc3VsdDsKLSAgICBpZiAoaXNUYWludGVkQnlQcm94eSgpKQotICAgICAgICBy
ZXN1bHQgPSBqc051bGwoKTsKLSAgICBlbHNlIGlmIChpc0NhY2hlYWJsZVZhbHVlKCkpCi0gICAg
ICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShtX2RhdGEudmFsdWUpOwotICAgIGVsc2UgaWYg
KGlzQ2FjaGVhYmxlR2V0dGVyKCkpCi0gICAgICAgIHJlc3VsdCA9IGdldHRlclNldHRlcigpOwot
ICAgIGVsc2UgaWYgKGlzVW5zZXQoKSkKLSAgICAgICAgcmVzdWx0ID0ganNVbmRlZmluZWQoKTsK
LSAgICBlbHNlCi0gICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOwotICAgIAotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuaAppbmRleCBkMTYzYTI0MTBlMTJhOGY4YzgyMTg1Y2U2ZTNl
ZGRkZmI3MjA2OTc2Li5kMDVmNzI5M2I2ZTdmNmZjNGQ2NzBiMGNlMmYxYzc0MmEyODg4MDNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtOTQs
NyArOTQsNiBAQCBwdWJsaWM6CiAKICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIFBy
b3BlcnR5TmFtZSkgY29uc3Q7CiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgIEpTVmFsdWUgZ2V0UHVyZVJlc3VsdCgpIGNv
bnN0OwogCiAgICAgYm9vbCBpc0NhY2hlYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVhYmls
aXR5ID09IENhY2hpbmdBbGxvd2VkICYmIG1fb2Zmc2V0ICE9IGludmFsaWRPZmZzZXQ7IH0KICAg
ICBib29sIGlzVW5zZXQoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5VHlwZSA9PSBUeXBlVW5z
ZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcApp
bmRleCA1MzkxODVmMzRmNzQ5NjUyYTYwNWVhMTJlYWI4MGE0Y2VjOTc5MzhjLi45ZjEyNGQzNTY3
YmQ0MDdiYWQ4MzYyYTYyMjM3MmQyZjU4YmY4NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC0zMzIsNyArMzMyLDggQEAgYm9vbCBQcm94
eU9iamVjdDo6cGVyZm9ybUhhc1Byb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwKIGJvb2wgUHJveHlPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdENvbW1v
bihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICBzbG90LmRpc2FibGVDYWNoaW5nKCk7Ci0gICAgc2xvdC5zZXRJc1Rh
aW50ZWRCeVByb3h5KCk7CisgICAgaWYgKHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgIT0gUHJv
cGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSkKKyAgICAgICAgc2xvdC5z
ZXRJc1RhaW50ZWRCeVByb3h5KCk7CiAgICAgc3dpdGNoIChzbG90LmludGVybmFsTWV0aG9kVHlw
ZSgpKSB7CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0Ogog
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBDdXN0b21BY2Nlc3NvciwgcGVyZm9ybVByb3h5
R2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHJ5
LWdldC1ieS1pZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHJ5LWdl
dC1ieS1pZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ5YjY3YzNmY2FiZjVk
MTBiZmRlMjJjM2I4NjQ5MzMxNTA3M2M0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RyeS1n
ZXQtYnktaWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotZnVuY3Rpb24gdHJ5
R2V0QnlJZFRleHQocHJvcGVydHlOYW1lKSB7IHJldHVybiBgKGZ1bmN0aW9uIChiYXNlKSB7IHJl
dHVybiBAdHJ5R2V0QnlJZChiYXNlLCAnJHtwcm9wZXJ0eU5hbWV9Jyk7IH0pYDsgfQotCi0KLS8v
IFRlc3QgZ2V0IHZhbHVlIG9mZiBvYmplY3QuCi17Ci0gICAgbGV0IGdldENhbGxlciA9IGNyZWF0
ZUJ1aWx0aW4odHJ5R2V0QnlJZFRleHQoImNhbGxlciIpKTsKLSAgICBub0lubGluZShnZXRDYWxs
ZXIpOwotICAgIGxldCBvYmogPSB7Y2FsbGVyOiAxfTsKLQotICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTAwMDAwOyBpKyspIHsKLSAgICAgICAgaWYgKGdldENhbGxlcihvYmopICE9PSAxKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBvbiBpdGVyYXRpb246ICIgKyBpKTsKLSAg
ICB9Ci19Ci0KLS8vIFRlc3Qgc2xvdCBpcyBjdXN0b20gZnVuY3Rpb24gdHJhcCBmb3IgYSB2YWx1
ZS4KLXsKLSAgICBsZXQgZ2V0Q2FsbGVyID0gY3JlYXRlQnVpbHRpbih0cnlHZXRCeUlkVGV4dCgi
Y2FsbGVyIikpOwotICAgIG5vSW5saW5lKGdldENhbGxlcik7Ci0gICAgbGV0IGZ1bmMgPSBmdW5j
dGlvbiAoKSB7fTsKLQotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspIHsKLSAg
ICAgICAgaWYgKGdldENhbGxlcihmdW5jKSAhPT0gbnVsbCkKLSAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigid3Jvbmcgb24gaXRlcmF0aW9uOiAiICsgaSk7Ci0gICAgfQotfQotCi0vLyBUZXN0
IHNsb3QgaXMgYSBHZXR0ZXJTZXR0ZXIuCi17Ci0gICAgbGV0IGdldCA9IGNyZWF0ZUJ1aWx0aW4o
dHJ5R2V0QnlJZFRleHQoImdldHRlclNldHRlciIpKTsKLSAgICBub0lubGluZShnZXQpOwotICAg
IGxldCBvYmogPSB7fTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZ2V0dGVyU2V0
dGVyIiwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgdGhyb3cgbmV3IEVycm9yKCJzaG91bGQgbm90IGJl
IGNhbGxlZCIpOyB9IH0pOwotCi0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDA7IGkrKykg
ewotICAgICAgICBpZiAoZ2V0KG9iaikgIT09IGdldEdldHRlclNldHRlcihvYmosICJnZXR0ZXJT
ZXR0ZXIiKSkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigid3Jvbmcgb24gaXRlcmF0aW9u
OiAiICsgaSk7Ci0gICAgfQotfQotCi0vLyBUZXN0IHNsb3QgaXMgdW5zZXQuCi17Ci0gICAgbGV0
IGdldCA9IGNyZWF0ZUJ1aWx0aW4odHJ5R2V0QnlJZFRleHQoImdldHRlclNldHRlciIpKTsKLSAg
ICBub0lubGluZShnZXQpOwotICAgIGxldCBvYmogPSB7fTsKLQotICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgMTAwMDAwOyBpKyspIHsKLSAgICAgICAgaWYgKGdldChvYmopICE9PSB1bmRlZmluZWQp
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIndyb25nIG9uIGl0ZXJhdGlvbjogIiArIGkp
OwotICAgIH0KLX0KLQotLy8gVGVzdCBzbG90IGlzIG9uIGEgcHJveHkgd2l0aCB2YWx1ZS4KLXsK
LSAgICBsZXQgZ2V0ID0gY3JlYXRlQnVpbHRpbih0cnlHZXRCeUlkVGV4dCgidmFsdWUiKSk7Ci0g
ICAgbm9JbmxpbmUoZ2V0KTsKLQotICAgIGxldCBvYmogPSB7dmFsdWU6IDF9OwotICAgIGxldCBw
ID0gbmV3IFByb3h5KG9iaiwgeyBnZXQ6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoInNo
b3VsZCBub3QgYmUgY2FsbGVkIik7IH0gfSk7Ci0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEw
MDAwMDsgaSsrKSB7Ci0gICAgICAgIGlmIChnZXQocCkgIT09IG51bGwpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIndyb25nIG9uIGl0ZXJhdGlvbjogIiArIGkpOwotICAgIH0KLX0KLQot
Ly8gVGVzdCBtdXRhdGluZyBpbmxpbmUgY2FjaGUuCi17Ci0gICAgbGV0IGdldCA9IGNyZWF0ZUJ1
aWx0aW4odHJ5R2V0QnlJZFRleHQoImNhbGxlciIpKTsKLSAgICBub0lubGluZShnZXQpOwotCi0g
ICAgbGV0IG9iaiA9IHtjYWxsZXIgOiAxfTsKLSAgICBsZXQgZnVuYyA9IGZ1bmN0aW9uKCkge307
Ci0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKSB7Ci0gICAgICAgIGlmIChp
ICUgMTAwID09PSAwKSB7Ci0gICAgICAgICAgICBpZiAoZ2V0KGZ1bmMpICE9PSBudWxsKQotICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigid3Jvbmcgb24gaXRlcmF0aW9uOiAiICsgaSk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZ2V0KG9iaikgIT09IDEpCi0gICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBvbiBpdGVyYXRpb246ICIgKyBpKTsK
LSAgICAgICAgfQotICAgIH0KLX0KLQotLy8gVGVzdCBuZXcgdHlwZSBvbiBlYWNoIGl0ZXJhdGlv
bi4KLXsKLSAgICBsZXQgZ2V0ID0gY3JlYXRlQnVpbHRpbih0cnlHZXRCeUlkVGV4dCgiY2FsbGVy
IikpOwotICAgIG5vSW5saW5lKGdldCk7Ci0KLSAgICBsZXQgZnVuYyA9IGZ1bmN0aW9uKCkge307
Ci0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKSB7Ci0gICAgICAgIGlmIChp
ICUgMTAwID09PSAwKSB7Ci0gICAgICAgICAgICBpZiAoZ2V0KGZ1bmMpICE9PSBudWxsKQotICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigid3Jvbmcgb24gaXRlcmF0aW9uOiAiICsgaSk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsZXQgb2JqID0ge2NhbGxlciA6IDF9Owot
ICAgICAgICAgICAgaWYgKGdldChvYmopICE9PSAxKQotICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigid3Jvbmcgb24gaXRlcmF0aW9uOiAiICsgaSk7Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0KLS8vIFRlc3Qgd2l0aCBhcnJheSBsZW5ndGguIFRoaXMgaXMgbnVsbCBiZWNhdXNlIHRoZSB2
YWx1ZSBpcyBub3QgY2FjaGVhYmxlLgotewotICAgIGxldCBnZXQgPSBjcmVhdGVCdWlsdGluKHRy
eUdldEJ5SWRUZXh0KCJsZW5ndGgiKSk7Ci0gICAgbm9JbmxpbmUoZ2V0KTsKLQotICAgIGxldCBh
cnIgPSBbXTsKLQotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspIHsKLSAgICAg
ICAgaWYgKGdldChhcnIpICE9PSBudWxsKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ3
cm9uZyBvbiBpdGVyYXRpb246ICIgKyBpKTsKLQotICAgIH0KLX0K
</data>

          </attachment>
      

    </bug>

</bugzilla>