<?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>202126</bug_id>
          
          <creation_ts>2019-09-23 19:09:44 -0700</creation_ts>
          <short_desc>REGRESSION(r250262): &quot;Breaks Win64 builds because of MSVC bug&quot; (Requested by mlam|a on #webkit).</short_desc>
          <delta_ts>2019-09-23 19:14:18 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202105</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573520</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 19:09:44 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/250262 broke the build:
&quot;Breaks Win64 builds because of MSVC bug&quot; (Requested by mlam|a 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>1573522</commentid>
    <comment_count>1</comment_count>
      <attachid>379416</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 19:09:51 -0700</bug_when>
    <thetext>Created attachment 379416
ROLLOUT of r250262

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>1573523</commentid>
    <comment_count>2</comment_count>
      <attachid>379416</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 19:13:47 -0700</bug_when>
    <thetext>Comment on attachment 379416
ROLLOUT of r250262

Clearing flags on attachment: 379416

Committed r250278: &lt;https://trac.webkit.org/changeset/250278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573524</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 19:13:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573525</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-23 19:14:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/55647005&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573526</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-23 19:14:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/55647006&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379416</attachid>
            <date>2019-09-23 19:09:51 -0700</date>
            <delta_ts>2019-09-23 19:13:47 -0700</delta_ts>
            <desc>ROLLOUT of r250262</desc>
            <filename>bug-202126-20190923190950.patch</filename>
            <type>text/plain</type>
            <size>39971</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MDIyM2U5M2M2NTVjMTBiNjMwMDQxNWQzOGIwN2MxMzk3NWQ0OGRhLi45YTkwNWE0MjY2MTg5MGJk
MDZlNDc1NGIyZjRiMWIxMTE4MjZhYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wOS0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MDI2Mi4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjEyNgorCisgICAg
ICAgICJCcmVha3MgV2luNjQgYnVpbGRzIGJlY2F1c2Ugb2YgTVNWQyBidWciIChSZXF1ZXN0ZWQg
YnkgbWxhbXxhCisgICAgICAgIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5n
ZXNldDoKKworICAgICAgICAiUmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtb3J5IG5lZWRlZCB0byBz
dG9yZSBPcHRpb25zLiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjEwNQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MjUwMjYyCisKIDIwMTktMDktMjMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnku
Y29tPgogCiAgICAgICAgIEFycmF5IG1ldGhvZHMgc2hvdWxkIHRocm93IFR5cGVFcnJvciB1cG9u
IGF0dGVtcHRpbmcgdG8gbW9kaWZ5IGEgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDT3B0aW9ucy5jcHAKaW5kZXggOTlmODJhYzAyMzgyYjYyOGI5NDI4MmQ3MDlj
ZTIyZjIzMzQ3OWRlNS4uNjU1ZjVmMDFiMjA2OTMxZmU3ZGIyNDc5ZjUxNmZlOGFjMmQzZWJkZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ09wdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NPcHRpb25zLmNwcApAQCAt
MTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBnYm9vbGVhbiBqc2NPcHRpb25zU2V0VmFsdWUoY29uc3Qg
Y2hhciogb3B0aW9uLCBjb25zdCBHVmFsdWUqIHZhbHVlKQogewogI2RlZmluZSBTRVRfT1BUSU9O
X1ZBTFVFKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXywgYXZhaWxhYmlsaXR5XywgZGVzY3Jp
cHRpb25fKSBcCiAgICAgaWYgKCFnX3N0cmNtcDAoI25hbWVfLCBvcHRpb24pKSB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIE9wdGlvblR5cGVzOjp0eXBlXyB2
YWx1ZVRvU2V0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIE9w
dGlvbkVudHJ5Ojp0eXBlXyB2YWx1ZVRvU2V0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIGlmICghdmFsdWVGcm9tR1ZhbHVlKHZhbHVlLCB2YWx1ZVRvU2V0KSkg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICByZXR1cm4gRkFMU0U7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIE9wdGlv
bnM6Om5hbWVfKCkgPSB2YWx1ZVRvU2V0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIGdib29sZWFuIGpzY09wdGlvbnNHZXRWYWx1
ZShjb25zdCBjaGFyKiBvcHRpb24sIEdWYWx1ZSogdmFsdWUpCiB7CiAjZGVmaW5lIEdFVF9PUFRJ
T05fVkFMVUUodHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBhdmFpbGFiaWxpdHlfLCBkZXNj
cmlwdGlvbl8pIFwKICAgICBpZiAoIWdfc3RyY21wMCgjbmFtZV8sIG9wdGlvbikpIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgT3B0aW9uVHlwZXM6OnR5cGVf
IHZhbHVlVG9HZXQgPSBPcHRpb25zOjpuYW1lXygpOyAgICAgICAgICAgICAgIFwKKyAgICAgICAg
T3B0aW9uRW50cnk6OnR5cGVfIHZhbHVlVG9HZXQgPSBPcHRpb25zOjpuYW1lXygpOyAgICAgICAg
ICAgICAgIFwKICAgICAgICAgdmFsdWVUb0dWYWx1ZSh2YWx1ZVRvR2V0LCB2YWx1ZSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIFRSVUU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9CkBAIC02
MTYsOCArNjE2LDggQEAgdm9pZCBqc2Nfb3B0aW9uc19mb3JlYWNoKEpTQ09wdGlvbnNGdW5jIGZ1
bmN0aW9uLCBncG9pbnRlciB1c2VyRGF0YSkKIAogI2RlZmluZSBWSVNJVF9PUFRJT04odHlwZV8s
IG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBhdmFpbGFiaWxpdHlfLCBkZXNjcmlwdGlvbl8pIFwKICAg
ICBpZiAoT3B0aW9uczo6QXZhaWxhYmlsaXR5OjphdmFpbGFiaWxpdHlfID09IE9wdGlvbnM6OkF2
YWlsYWJpbGl0eTo6Tm9ybWFsIFwKLSAgICAgICAgfHwgT3B0aW9uczo6aXNBdmFpbGFibGUoT3B0
aW9uSUQ6Om5hbWVfLCBPcHRpb25zOjpBdmFpbGFiaWxpdHk6OmF2YWlsYWJpbGl0eV8pKSB7IFwK
LSAgICAgICAgT3B0aW9uVHlwZXM6OnR5cGVfIGRlZmF1bHRWYWx1ZSB7IH07ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfHwgT3B0aW9uczo6aXNBdmFpbGFibGUoT3B0aW9u
czo6bmFtZV8jI0lELCBPcHRpb25zOjpBdmFpbGFiaWxpdHk6OmF2YWlsYWJpbGl0eV8pKSB7IFwK
KyAgICAgICAgT3B0aW9uRW50cnk6OnR5cGVfIGRlZmF1bHRWYWx1ZSB7IH07ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgYXV0byBvcHRpb25UeXBlID0ganNjT3B0aW9uc1R5
cGUoZGVmYXVsdFZhbHVlKTsgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKGZ1bmN0aW9u
ICgjbmFtZV8sIG9wdGlvblR5cGUsIGRlc2NyaXB0aW9uXywgdXNlckRhdGEpKSAgICAgIFwKICAg
ICAgICAgICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKQEAgLTY2Niw3ICs2NjYsNyBAQCBHT3B0aW9uR3JvdXAqIGpzY19vcHRp
b25zX2dldF9vcHRpb25fZ3JvdXAodm9pZCkKICAgICBHQXJyYXkqIGVudHJpZXMgPSBnX2FycmF5
X25ldyhUUlVFLCBUUlVFLCBzaXplb2YoR09wdGlvbkVudHJ5KSk7CiAjZGVmaW5lIFJFR0lTVEVS
X09QVElPTih0eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8sIGF2YWlsYWJpbGl0eV8sIGRlc2Ny
aXB0aW9uXykgXAogICAgIGlmIChPcHRpb25zOjpBdmFpbGFiaWxpdHk6OmF2YWlsYWJpbGl0eV8g
PT0gT3B0aW9uczo6QXZhaWxhYmlsaXR5OjpOb3JtYWwgXAotICAgICAgICB8fCBPcHRpb25zOjpp
c0F2YWlsYWJsZShPcHRpb25JRDo6bmFtZV8sIE9wdGlvbnM6OkF2YWlsYWJpbGl0eTo6YXZhaWxh
YmlsaXR5XykpIHsgXAorICAgICAgICB8fCBPcHRpb25zOjppc0F2YWlsYWJsZShPcHRpb25zOjpu
YW1lXyMjSUQsIE9wdGlvbnM6OkF2YWlsYWJpbGl0eTo6YXZhaWxhYmlsaXR5XykpIHsgXAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IG5hbWUoZ19zdHJkdXBfcHJpbnRmKCJqc2MtJXMiLCAjbmFt
ZV8pKTsgICAgICAgXAogICAgICAgICBlbnRyaWVzID0gZ19hcnJheV9zZXRfc2l6ZShlbnRyaWVz
LCBlbnRyaWVzLT5sZW4gKyAxKTsgXAogICAgICAgICBHT3B0aW9uRW50cnkqIGVudHJ5ID0gJmdf
YXJyYXlfaW5kZXgoZW50cmllcywgR09wdGlvbkVudHJ5LCBlbnRyaWVzLT5sZW4gLSAxKTsgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRlM2I2MzhlOGRiMWNkNTM3YWI1
MTdhZjQ2OTZiM2EyNDIzNDQxZTIuLmE2YzBmMDI3NWUzZjFlNWNhZDQxZTZhNGM4YTc2MjVlYjA3
NmIyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkxOSw2ICs5MTks
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHJ1
bnRpbWUvT2JqZWN0SW5pdGlhbGl6YXRpb25TY29wZS5oCiAgICAgcnVudGltZS9PYmplY3RQcm90
b3R5cGUuaAogICAgIHJ1bnRpbWUvT3BlcmF0aW9ucy5oCisgICAgcnVudGltZS9PcHRpb25FbnRy
eS5oCiAgICAgcnVudGltZS9PcHRpb25zLmgKICAgICBydW50aW1lL09wdGlvbnNMaXN0LmgKICAg
ICBydW50aW1lL1BhcnNlSW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzUy
ODJjYTI4Njc5YmUwZTg1ZmU3ZGQyYWQ2ODc0ODA0NmMyYzA5MS4uNTM0ZDdkMDJhMThhM2Q0ZWRk
MWU0OTZkYzZlYmRiMThjZWQ5NGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE4NzIsNiArMTg3Miw3IEBACiAJCUZFMzAyMkQ3MUU0Mjg1NzMwMEJBQzQ5MyAvKiBWTUluc3Bl
Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUz
MDIyRDUxRTQyODU2NzAwQkFDNDkzIC8qIFZNSW5zcGVjdG9yLmggKi87IH07CiAJCUZFMzE4RkUw
MUNBQzk4MkYwMERGQ0M1NCAvKiBFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTMxOEZERTFDQUM4
QzUzMDBERkNDNTQgLyogRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5oICovOyB9Owog
CQlGRTM0MjIxMjFENkI4MUMzMDAzMkJFODggLyogVGhyb3dTY29wZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzNDIyMTExRDZCODE4QzAwMzJCRTg4
IC8qIFRocm93U2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlGRTM4NDIzMjIzMjRENTFCMDA5REQ0NDUgLyogT3B0aW9uRW50cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMzg0MjMwMjMyNEQ1
MUEwMDlERDQ0NSAvKiBPcHRpb25FbnRyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUZFMzg0MjMzMjMyNEQ1MUIwMDlERDQ0NSAvKiBPcHRpb25z
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUz
ODQyMzEyMzI0RDUxQjAwOURENDQ1IC8qIE9wdGlvbnNMaXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkUzODRFRTYxQUREQjdBRDAwNTVERTJD
IC8qIEpTRG9sbGFyVk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFMzg0RUUyMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkUzQTA2QTYxQzEwQjcy
RDAwMzkwRkREIC8qIEpJVEJpdE9yR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTNBMDZBNDFDMTBCNzA4MDAzOTBGREQgLyogSklUQml0
T3JHZW5lcmF0b3IuaCAqLzsgfTsKQEAgLTUwNjksNiArNTA3MCw3IEBACiAJCUZFMzVDMkZBMjFC
MUU2QzcwMDBGNENBOCAvKiBPcHRpb25zLnJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucnVieTsg
cGF0aCA9IE9wdGlvbnMucmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzVDMkZC
MjFCMUU2QzcwMDBGNENBOCAvKiBPcGNvZGVHcm91cC5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0
LnJ1Ynk7IHBhdGggPSBPcGNvZGVHcm91cC5yYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkUzNUMyRkMyMUIxRTZDNzAwMEY0Q0E4IC8qIE1ldGFkYXRhLnJiICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQucnVieTsgcGF0aCA9IE1ldGFkYXRhLnJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGRTM4NDIzMDIzMjRENTFBMDA5REQ0NDUgLyogT3B0aW9uRW50cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3B0aW9uRW50cnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkUzODQyMzEyMzI0RDUxQjAwOURENDQ1IC8qIE9wdGlvbnNMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbnNMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzg0RUUxMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxh
clZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9sbGFyVk0u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTM4NEVFMjFBRERCN0FEMDA1NURF
MkMgLyogSlNEb2xsYXJWTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rv
bGxhclZNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzY4LDYgKzczNzAsNyBA
QAogCQkJCUUzOUVFQUYyMjI4MTI0NEMwMDg0NzRGNCAvKiBPYmplY3RUb1N0cmluZ0FkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5oICovLAogCQkJCUY2OTJBODc3MDI1NTU5N0QwMUZGNjBGNyAv
KiBPcGVyYXRpb25zLmNwcCAqLywKIAkJCQlGNjkyQTg3ODAyNTU1OTdEMDFGRjYwRjcgLyogT3Bl
cmF0aW9ucy5oICovLAorCQkJCUZFMzg0MjMwMjMyNEQ1MUEwMDlERDQ0NSAvKiBPcHRpb25FbnRy
eS5oICovLAogCQkJCTBGRTIyOEVBMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmNwcCAqLywK
IAkJCQkwRkUyMjhFQjE0MzZBQjIzMDAxOTZDNDggLyogT3B0aW9ucy5oICovLAogCQkJCUZFMzg0
MjMxMjMyNEQ1MUIwMDlERDQ0NSAvKiBPcHRpb25zTGlzdC5oICovLApAQCAtOTM1MCw2ICs5MzUz
LDcgQEAKIAkJCQkwRkVBMEExMDE3MDUxM0RCMDBCQjcyMkMgLyogRlRMTG93ZXJERkdUb0IzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUQwMjE3QTBCOTA0MDA3NzNBRDggLyogRlRMTG93ZXJl
ZE5vZGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjlDRjkxOUQwQkFDMTAwQjFEMUI1
IC8qIEZUTE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFMzg0MjMyMjMyNEQ1MUIw
MDlERDQ0NSAvKiBPcHRpb25FbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMUMxN0Q1
MUYyMjAwQ0EyQzQwIC8qIEZUTE9TUkVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJE
RDE3MTc4RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
MzVCRTAxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTE9TUkV4aXRDb21waWxlci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NDb25maWcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0NvbmZpZy5oCmluZGV4IDlmY2Vl
MGM2MzA3ZWI2YWY0MTk5ZWMzZjEzOTQxMjdhNzhhMGZhZjYuLjBmMGJlZGI5YjI5MGM3ZDJlMmRl
M2Q3YWE4ODBmNDI1YjBjZDUyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0NvbmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0NvbmZpZy5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
T3B0aW9uRW50cnkuaCIKICNpbmNsdWRlICJPcHRpb25zTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIApAQCAtMzUsMTUgKzM2LDEyIEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhl
Y3V0YWJsZUFsbG9jYXRvcjsKIAogI2lmIENQVShBUk02NCkgfHwgUExBVEZPUk0oV0FUQ0hPUykK
IGNvbnN0ZXhwciBzaXplX3QgUGFnZVNpemUgPSAxNiAqIEtCOwotY29uc3RleHByIHNpemVfdCBD
b25maWdTaXplVG9Qcm90ZWN0ID0gMSAqIFBhZ2VTaXplOwotI2VsaWYgQ1BVKFg4Nl82NCkgfHwg
Q1BVKFg4NikKKyNlbHNlCiBjb25zdGV4cHIgc2l6ZV90IFBhZ2VTaXplID0gNCAqIEtCOwotY29u
c3RleHByIHNpemVfdCBDb25maWdTaXplVG9Qcm90ZWN0ID0gMSAqIFBhZ2VTaXplOwotI2VsaWYg
Q1BVKFBQQzY0KSB8fCBDUFUoUFBDNjRMRSkgfHwgQ1BVKFBQQykgfHwgQ1BVKFVOS05PV04pCi1j
b25zdGV4cHIgc2l6ZV90IFBhZ2VTaXplID0gNjQgKiBLQjsKLWNvbnN0ZXhwciBzaXplX3QgQ29u
ZmlnU2l6ZVRvUHJvdGVjdCA9IDEgKiBQYWdlU2l6ZTsKICNlbmRpZgogCitjb25zdGV4cHIgc2l6
ZV90IENvbmZpZ1NpemVUb1Byb3RlY3QgPSAxNiAqIEtCOworCiAjaWYgRU5BQkxFKFNFUEFSQVRF
RF9XWF9IRUFQKQogdXNpbmcgSklUV3JpdGVTZXBhcmF0ZUhlYXBzRnVuY3Rpb24gPSB2b2lkICgq
KShvZmZfdCwgY29uc3Qgdm9pZCosIHNpemVfdCk7CiAjZW5kaWYKQEAgLTg0LDI5ICs4Miw4IEBA
IHN0cnVjdCBDb25maWcgewogICAgICAgICAgICAgYm9vbCB1c2VGYXN0UGVybWlzaW9uc0pJVENv
cHk7CiAjZW5kaWYKIAotICAgICAgICAgICAgYm9vbCB0eXBlQm9vbE9wdGlvbnNbTnVtYmVyT2ZC
b29sT3B0aW9uc107Ci0gICAgICAgICAgICBib29sIHR5cGVCb29sRGVmYXVsdE9wdGlvbnNbTnVt
YmVyT2ZCb29sT3B0aW9uc107Ci0KLSAgICAgICAgICAgIEdDTG9nZ2luZzo6TGV2ZWwgdHlwZUdD
TG9nTGV2ZWxPcHRpb25zW051bWJlck9mR0NMb2dMZXZlbE9wdGlvbnNdOwotICAgICAgICAgICAg
R0NMb2dnaW5nOjpMZXZlbCB0eXBlR0NMb2dMZXZlbERlZmF1bHRPcHRpb25zW051bWJlck9mR0NM
b2dMZXZlbE9wdGlvbnNdOwotCi0gICAgICAgICAgICBpbnQzMl90IHR5cGVJbnQzMk9wdGlvbnNb
TnVtYmVyT2ZJbnQzMk9wdGlvbnNdOwotICAgICAgICAgICAgaW50MzJfdCB0eXBlSW50MzJEZWZh
dWx0T3B0aW9uc1tOdW1iZXJPZkludDMyT3B0aW9uc107Ci0KLSAgICAgICAgICAgIHVuc2lnbmVk
IHR5cGVVbnNpZ25lZE9wdGlvbnNbTnVtYmVyT2ZVbnNpZ25lZE9wdGlvbnNdOwotICAgICAgICAg
ICAgdW5zaWduZWQgdHlwZVVuc2lnbmVkRGVmYXVsdE9wdGlvbnNbTnVtYmVyT2ZVbnNpZ25lZE9w
dGlvbnNdOwotCi0gICAgICAgICAgICBkb3VibGUgdHlwZURvdWJsZU9wdGlvbnNbTnVtYmVyT2ZE
b3VibGVPcHRpb25zXTsKLSAgICAgICAgICAgIGRvdWJsZSB0eXBlRG91YmxlRGVmYXVsdE9wdGlv
bnNbTnVtYmVyT2ZEb3VibGVPcHRpb25zXTsKLQotICAgICAgICAgICAgc2l6ZV90IHR5cGVTaXpl
T3B0aW9uc1tOdW1iZXJPZlNpemVPcHRpb25zXTsKLSAgICAgICAgICAgIHNpemVfdCB0eXBlU2l6
ZURlZmF1bHRPcHRpb25zW051bWJlck9mU2l6ZU9wdGlvbnNdOwotCi0gICAgICAgICAgICBjb25z
dCBjaGFyKiB0eXBlT3B0aW9uU3RyaW5nT3B0aW9uc1tOdW1iZXJPZk9wdGlvblN0cmluZ09wdGlv
bnNdOwotICAgICAgICAgICAgY29uc3QgY2hhciogdHlwZU9wdGlvblN0cmluZ0RlZmF1bHRPcHRp
b25zW051bWJlck9mT3B0aW9uU3RyaW5nT3B0aW9uc107Ci0KLSAgICAgICAgICAgIE9wdGlvblJh
bmdlIHR5cGVPcHRpb25SYW5nZU9wdGlvbnNbTnVtYmVyT2ZPcHRpb25SYW5nZU9wdGlvbnNdOwot
ICAgICAgICAgICAgT3B0aW9uUmFuZ2UgdHlwZU9wdGlvblJhbmdlRGVmYXVsdE9wdGlvbnNbTnVt
YmVyT2ZPcHRpb25SYW5nZU9wdGlvbnNdOworICAgICAgICAgICAgT3B0aW9uRW50cnkgb3B0aW9u
c1tOdW1iZXJPZk9wdGlvbnNdOworICAgICAgICAgICAgT3B0aW9uRW50cnkgZGVmYXVsdE9wdGlv
bnNbTnVtYmVyT2ZPcHRpb25zXTsKICAgICAgICAgfTsKICAgICAgICAgY2hhciBlbnN1cmVTaXpl
W0NvbmZpZ1NpemVUb1Byb3RlY3RdOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25FbnRyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9uRW50cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmQ2Y2NjYzM5M2QzZjU3MThjMzg4NmM5
MGVmOWU1MDA3ZDVhZTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9uRW50cnkuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJH
Q0xvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIEpT
QyB7CisKK2NsYXNzIE9wdGlvblJhbmdlIHsKK3ByaXZhdGU6CisgICAgZW51bSBSYW5nZVN0YXRl
IHsgVW5pbml0aWFsaXplZCwgSW5pdEVycm9yLCBOb3JtYWwsIEludmVydGVkIH07CitwdWJsaWM6
CisgICAgT3B0aW9uUmFuZ2UmIG9wZXJhdG9yPSAoY29uc3QgaW50JiByaHMpCisgICAgeyAvLyBP
bmx5IG5lZWRlZCBmb3IgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaWYgKCFyaHMpIHsKKyAgICAg
ICAgICAgIG1fc3RhdGUgPSBVbmluaXRpYWxpemVkOworICAgICAgICAgICAgbV9yYW5nZVN0cmlu
ZyA9IDA7CisgICAgICAgICAgICBtX2xvd0xpbWl0ID0gMDsKKyAgICAgICAgICAgIG1faGlnaExp
bWl0ID0gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAg
Ym9vbCBpbml0KGNvbnN0IGNoYXIqKTsKKyAgICBib29sIGlzSW5SYW5nZSh1bnNpZ25lZCk7Cisg
ICAgY29uc3QgY2hhciogcmFuZ2VTdHJpbmcoKSBjb25zdCB7IHJldHVybiAobV9zdGF0ZSA+IElu
aXRFcnJvcikgPyBtX3JhbmdlU3RyaW5nIDogc19udWxsUmFuZ2VTdHI7IH0KKyAgICAKKyAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGNvbnN0IHNfbnVsbFJhbmdlU3RyOworCisgICAgUmFuZ2VTdGF0ZSBtX3N0
YXRlOworICAgIGNvbnN0IGNoYXIqIG1fcmFuZ2VTdHJpbmc7CisgICAgdW5zaWduZWQgbV9sb3dM
aW1pdDsKKyAgICB1bnNpZ25lZCBtX2hpZ2hMaW1pdDsKK307CisKKy8vIEZvciBzdG9yaW5nIGZv
ciBhbiBvcHRpb24gdmFsdWU6Cit1bmlvbiBPcHRpb25FbnRyeSB7CisgICAgdXNpbmcgQm9vbCA9
IGJvb2w7CisgICAgdXNpbmcgVW5zaWduZWQgPSB1bnNpZ25lZDsKKyAgICB1c2luZyBEb3VibGUg
PSBkb3VibGU7CisgICAgdXNpbmcgSW50MzIgPSBpbnQzMl90OworICAgIHVzaW5nIFNpemUgPSBz
aXplX3Q7CisgICAgdXNpbmcgT3B0aW9uUmFuZ2UgPSBKU0M6Ok9wdGlvblJhbmdlOworICAgIHVz
aW5nIE9wdGlvblN0cmluZyA9IGNvbnN0IGNoYXIqOworICAgIHVzaW5nIEdDTG9nTGV2ZWwgPSBH
Q0xvZ2dpbmc6OkxldmVsOworCisgICAgYm9vbCB2YWxCb29sOworICAgIHVuc2lnbmVkIHZhbFVu
c2lnbmVkOworICAgIGRvdWJsZSB2YWxEb3VibGU7CisgICAgaW50MzJfdCB2YWxJbnQzMjsKKyAg
ICBzaXplX3QgdmFsU2l6ZTsKKyAgICBPcHRpb25SYW5nZSB2YWxPcHRpb25SYW5nZTsKKyAgICBj
b25zdCBjaGFyKiB2YWxPcHRpb25TdHJpbmc7CisgICAgR0NMb2dnaW5nOjpMZXZlbCB2YWxHQ0xv
Z0xldmVsOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDYwNzNlODlkOGNiNWY2YTFmNWY1YmQyOTUwNmQ5MDFi
ZGJkMDRjMmMuLmIwYTI0MmI3YzdlNjcyZWU0ZWM4NzcwZmRmNWI0OGYyMjBiYzdiNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0xMzIsNyArMTMyLDcg
QEAgc3RhdGljIGJvb2wgcGFyc2UoY29uc3QgY2hhciogc3RyaW5nLCBHQ0xvZ2dpbmc6OkxldmVs
JiB2YWx1ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgT3B0aW9uczo6aXNBdmFpbGFi
bGUoT3B0aW9uSUQgaWQsIE9wdGlvbnM6OkF2YWlsYWJpbGl0eSBhdmFpbGFiaWxpdHkpCitib29s
IE9wdGlvbnM6OmlzQXZhaWxhYmxlKE9wdGlvbnM6OklEIGlkLCBPcHRpb25zOjpBdmFpbGFiaWxp
dHkgYXZhaWxhYmlsaXR5KQogewogICAgIGlmIChhdmFpbGFiaWxpdHkgPT0gQXZhaWxhYmlsaXR5
OjpSZXN0cmljdGVkKQogICAgICAgICByZXR1cm4gZ19qc2NDb25maWcucmVzdHJpY3RlZE9wdGlv
bnNFbmFibGVkOwpAQCAtMTQwLDI2ICsxNDAsMjYgQEAgYm9vbCBPcHRpb25zOjppc0F2YWlsYWJs
ZShPcHRpb25JRCBpZCwgT3B0aW9uczo6QXZhaWxhYmlsaXR5IGF2YWlsYWJpbGl0eSkKICAgICAK
ICAgICBVTlVTRURfUEFSQU0oaWQpOwogI2lmICFkZWZpbmVkKE5ERUJVRykKLSAgICBpZiAoaWQg
PT0gT3B0aW9uSUQ6Om1heFNpbmdsZUFsbG9jYXRpb25TaXplKQorICAgIGlmIChpZCA9PSBtYXhT
aW5nbGVBbGxvY2F0aW9uU2l6ZUlEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lm
IE9TKERBUldJTikKLSAgICBpZiAoaWQgPT0gT3B0aW9uSUQ6OnVzZVNpZ2lsbENyYXNoQW5hbHl6
ZXIpCisgICAgaWYgKGlkID09IHVzZVNpZ2lsbENyYXNoQW5hbHl6ZXJJRCkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBPUyhMSU5VWCkKLSAg
ICBpZiAoaWQgPT0gT3B0aW9uSUQ6OmxvZ0pJVENvZGVGb3JQZXJmKQorICAgIGlmIChpZCA9PSBs
b2dKSVRDb2RlRm9yUGVyZklEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlm
IChpZCA9PSBPcHRpb25JRDo6dHJhY2VMTEludEV4ZWN1dGlvbikKKyAgICBpZiAoaWQgPT0gdHJh
Y2VMTEludEV4ZWN1dGlvbklEKQogICAgICAgICByZXR1cm4gISFMTElOVF9UUkFDSU5HOwotICAg
IGlmIChpZCA9PSBPcHRpb25JRDo6dHJhY2VMTEludFNsb3dQYXRoKQorICAgIGlmIChpZCA9PSB0
cmFjZUxMSW50U2xvd1BhdGhJRCkKICAgICAgICAgcmV0dXJuICEhTExJTlRfVFJBQ0lORzsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1ib29sIG92ZXJyaWRl
T3B0aW9uV2l0aEhldXJpc3RpYyhUJiB2YXJpYWJsZSwgT3B0aW9uSUQgaWQsIGNvbnN0IGNoYXIq
IG5hbWUsIE9wdGlvbnM6OkF2YWlsYWJpbGl0eSBhdmFpbGFiaWxpdHkpCitib29sIG92ZXJyaWRl
T3B0aW9uV2l0aEhldXJpc3RpYyhUJiB2YXJpYWJsZSwgT3B0aW9uczo6SUQgaWQsIGNvbnN0IGNo
YXIqIG5hbWUsIE9wdGlvbnM6OkF2YWlsYWJpbGl0eSBhdmFpbGFiaWxpdHkpCiB7CiAgICAgYm9v
bCBhdmFpbGFibGUgPSAoYXZhaWxhYmlsaXR5ID09IE9wdGlvbnM6OkF2YWlsYWJpbGl0eTo6Tm9y
bWFsKQogICAgICAgICB8fCBPcHRpb25zOjppc0F2YWlsYWJsZShpZCwgYXZhaWxhYmlsaXR5KTsK
QEAgLTI4Myw5ICsyODMsOSBAQCB2b2lkIE9wdGlvblJhbmdlOjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiB9CiAKIC8vIFJlYWxpemUgdGhlIG5hbWVzIGZvciBlYWNoIG9mIHRoZSBvcHRp
b25zOgotY29uc3QgT3B0aW9uczo6RW50cnlJbmZvIE9wdGlvbnM6OnNfb3B0aW9uc0luZm9bTnVt
YmVyT2ZPcHRpb25zXSA9IHsKK2NvbnN0IE9wdGlvbnM6OkVudHJ5SW5mbyBPcHRpb25zOjpzX29w
dGlvbnNJbmZvW09wdGlvbnM6Om51bWJlck9mT3B0aW9uc10gPSB7CiAjZGVmaW5lIEZJTExfT1BU
SU9OX0lORk8odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBhdmFpbGFiaWxpdHlfLCBkZXNj
cmlwdGlvbl8pIFwKLSAgICB7ICNuYW1lXywgZGVzY3JpcHRpb25fLCBPcHRpb25UeXBlSUQ6OnR5
cGVfLCBBdmFpbGFiaWxpdHk6OmF2YWlsYWJpbGl0eV8sIG9wdGlvblR5cGVTcGVjaWZpY0luZGV4
PE9wdGlvblR5cGVJRDo6dHlwZV8sIE9wdGlvbklEOjpuYW1lXz4oKSB9LAorICAgIHsgI25hbWVf
LCBkZXNjcmlwdGlvbl8sIE9wdGlvbnM6OlR5cGU6OnR5cGVfLCBBdmFpbGFiaWxpdHk6OmF2YWls
YWJpbGl0eV8gfSwKICAgICBGT1JfRUFDSF9KU0NfT1BUSU9OKEZJTExfT1BUSU9OX0lORk8pCiAj
dW5kZWYgRklMTF9PUFRJT05fSU5GTwogfTsKQEAgLTI5OSwyNSArMjk5LDI2IEBAIHN0YXRpYyB2
b2lkIHNjYWxlSklUUG9saWN5KCkKICAgICAgICAgc2NhbGVGYWN0b3IgPSAwLjA7CiAKICAgICBz
dHJ1Y3QgT3B0aW9uVG9TY2FsZSB7Ci0gICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgT3B0
aW9uczo6SUQgaWQ7CiAgICAgICAgIGludDMyX3QgbWluVmFsOwogICAgIH07CiAKICAgICBzdGF0
aWMgY29uc3QgT3B0aW9uVG9TY2FsZSBvcHRpb25zVG9TY2FsZVtdID0gewotICAgICAgICB7IG9w
dGlvblR5cGVTcGVjaWZpY0luZGV4PE9wdGlvblR5cGVJRDo6SW50MzIsIE9wdGlvbklEOjp0aHJl
c2hvbGRGb3JKSVRBZnRlcldhcm1VcD4oKSwgMCB9LAotICAgICAgICB7IG9wdGlvblR5cGVTcGVj
aWZpY0luZGV4PE9wdGlvblR5cGVJRDo6SW50MzIsIE9wdGlvbklEOjp0aHJlc2hvbGRGb3JKSVRT
b29uPigpLCAwIH0sCi0gICAgICAgIHsgb3B0aW9uVHlwZVNwZWNpZmljSW5kZXg8T3B0aW9uVHlw
ZUlEOjpJbnQzMiwgT3B0aW9uSUQ6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXA+KCks
IDEgfSwKLSAgICAgICAgeyBvcHRpb25UeXBlU3BlY2lmaWNJbmRleDxPcHRpb25UeXBlSUQ6Oklu
dDMyLCBPcHRpb25JRDo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXA+KCksIDEg
fSwKLSAgICAgICAgeyBvcHRpb25UeXBlU3BlY2lmaWNJbmRleDxPcHRpb25UeXBlSUQ6OkludDMy
LCBPcHRpb25JRDo6dGhyZXNob2xkRm9yT3B0aW1pemVTb29uPigpLCAxIH0sCi0gICAgICAgIHsg
b3B0aW9uVHlwZVNwZWNpZmljSW5kZXg8T3B0aW9uVHlwZUlEOjpJbnQzMiwgT3B0aW9uSUQ6OnRo
cmVzaG9sZEZvckZUTE9wdGltaXplU29vbj4oKSwgMiB9LAotICAgICAgICB7IG9wdGlvblR5cGVT
cGVjaWZpY0luZGV4PE9wdGlvblR5cGVJRDo6SW50MzIsIE9wdGlvbklEOjp0aHJlc2hvbGRGb3JG
VExPcHRpbWl6ZUFmdGVyV2FybVVwPigpLCAyIH0sCisgICAgICAgIHsgT3B0aW9uczo6dGhyZXNo
b2xkRm9ySklUQWZ0ZXJXYXJtVXBJRCwgMCB9LAorICAgICAgICB7IE9wdGlvbnM6OnRocmVzaG9s
ZEZvckpJVFNvb25JRCwgMCB9LAorICAgICAgICB7IE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGlt
aXplQWZ0ZXJXYXJtVXBJRCwgMSB9LAorICAgICAgICB7IE9wdGlvbnM6OnRocmVzaG9sZEZvck9w
dGltaXplQWZ0ZXJMb25nV2FybVVwSUQsIDEgfSwKKyAgICAgICAgeyBPcHRpb25zOjp0aHJlc2hv
bGRGb3JPcHRpbWl6ZVNvb25JRCwgMSB9LAorICAgICAgICB7IE9wdGlvbnM6OnRocmVzaG9sZEZv
ckZUTE9wdGltaXplU29vbklELCAyIH0sCisgICAgICAgIHsgT3B0aW9uczo6dGhyZXNob2xkRm9y
RlRMT3B0aW1pemVBZnRlcldhcm1VcElELCAyIH0KICAgICB9OwogCi0gICAgY29uc3RleHByIGlu
dCBudW1iZXJPZk9wdGlvbnNUb1NjYWxlID0gc2l6ZW9mKG9wdGlvbnNUb1NjYWxlKSAvIHNpemVv
ZihPcHRpb25Ub1NjYWxlKTsKKyAgICBjb25zdCBpbnQgbnVtYmVyT2ZPcHRpb25zVG9TY2FsZSA9
IHNpemVvZihvcHRpb25zVG9TY2FsZSkgLyBzaXplb2YoT3B0aW9uVG9TY2FsZSk7CiAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBudW1iZXJPZk9wdGlvbnNUb1NjYWxlOyBpKyspIHsKLSAgICAgICAg
aW50MzJfdCYgb3B0aW9uVmFsdWUgPSBnX2pzY0NvbmZpZy50eXBlSW50MzJPcHRpb25zW29wdGlv
bnNUb1NjYWxlW2ldLmluZGV4XTsKLSAgICAgICAgb3B0aW9uVmFsdWUgKj0gc2NhbGVGYWN0b3I7
Ci0gICAgICAgIG9wdGlvblZhbHVlID0gc3RkOjptYXgob3B0aW9uVmFsdWUsIG9wdGlvbnNUb1Nj
YWxlW2ldLm1pblZhbCk7CisgICAgICAgIE9wdGlvbiBvcHRpb24ob3B0aW9uc1RvU2NhbGVbaV0u
aWQpOworICAgICAgICBBU1NFUlQob3B0aW9uLnR5cGUoKSA9PSBPcHRpb25zOjpUeXBlOjpJbnQz
Mik7CisgICAgICAgIG9wdGlvbi5pbnQzMlZhbCgpICo9IHNjYWxlRmFjdG9yOworICAgICAgICBv
cHRpb24uaW50MzJWYWwoKSA9IHN0ZDo6bWF4KG9wdGlvbi5pbnQzMlZhbCgpLCBvcHRpb25zVG9T
Y2FsZVtpXS5taW5WYWwpOwogICAgIH0KIH0KIApAQCAtNDQwLDcgKzQ0MSw3IEBAIHN0YXRpYyB2
b2lkIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAgIGlmICghT3B0aW9uczo6dXNlQ29u
Y3VycmVudEdDKCkpCiAgICAgICAgIE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3VzbHkoKSA9IGZh
bHNlOwogCi0gICAgaWYgKE9wdGlvbihPcHRpb25JRDo6aml0UG9saWN5U2NhbGUpLmlzT3ZlcnJp
ZGRlbigpKQorICAgIGlmIChPcHRpb24oT3B0aW9uczo6aml0UG9saWN5U2NhbGVJRCkuaXNPdmVy
cmlkZGVuKCkpCiAgICAgICAgIHNjYWxlSklUUG9saWN5KCk7CiAgICAgCiAgICAgaWYgKE9wdGlv
bnM6OmZvcmNlRWFnZXJDb21waWxhdGlvbigpKSB7CkBAIC01MTYsMTEgKzUxNyw5IEBAIHZvaWQg
T3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICBDb25maWc6OmVuYWJsZVJlc3RyaWN0
ZWRPcHRpb25zKCk7CiAjZW5kaWYKICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgZWFjaCBvZiB0
aGUgb3B0aW9ucyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzOgotI2RlZmluZSBJTklUX09QVElP
Tih0eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8sIGF2YWlsYWJpbGl0eV8sIGRlc2NyaXB0aW9u
XykgeyBcCi0gICAgICAgICAgICAgICAgYXV0byB2YWx1ZSA9IGRlZmF1bHRWYWx1ZV87IFwKLSAg
ICAgICAgICAgICAgICBuYW1lXygpID0gdmFsdWU7IFwKLSAgICAgICAgICAgICAgICBuYW1lXyMj
RGVmYXVsdCgpID0gdmFsdWU7IFwKLSAgICAgICAgICAgIH0KKyNkZWZpbmUgSU5JVF9PUFRJT04o
dHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBhdmFpbGFiaWxpdHlfLCBkZXNjcmlwdGlvbl8p
IFwKKyAgICAgICAgICAgIG5hbWVfKCkgPSBkZWZhdWx0VmFsdWVfOyBcCisgICAgICAgICAgICBu
YW1lXyMjRGVmYXVsdCgpID0gZGVmYXVsdFZhbHVlXzsKICAgICAgICAgICAgIEZPUl9FQUNIX0pT
Q19PUFRJT04oSU5JVF9PUFRJT04pCiAjdW5kZWYgSU5JVF9PUFRJT04KIApAQCAtNTQ0LDcgKzU0
Myw3IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICNlbHNlIC8vIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBPVkVSUklERV9PUFRJT05fV0lU
SF9IRVVSSVNUSUNTKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXywgYXZhaWxhYmlsaXR5Xywg
ZGVzY3JpcHRpb25fKSBcCi0gICAgICAgICAgICBvdmVycmlkZU9wdGlvbldpdGhIZXVyaXN0aWMo
bmFtZV8oKSwgT3B0aW9uSUQ6Om5hbWVfLCAiSlNDXyIgI25hbWVfLCBBdmFpbGFiaWxpdHk6OmF2
YWlsYWJpbGl0eV8pOworICAgICAgICAgICAgb3ZlcnJpZGVPcHRpb25XaXRoSGV1cmlzdGljKG5h
bWVfKCksIG5hbWVfIyNJRCwgIkpTQ18iICNuYW1lXywgQXZhaWxhYmlsaXR5OjphdmFpbGFiaWxp
dHlfKTsKICAgICAgICAgICAgIEZPUl9FQUNIX0pTQ19PUFRJT04oT1ZFUlJJREVfT1BUSU9OX1dJ
VEhfSEVVUklTVElDUykKICN1bmRlZiBPVkVSUklERV9PUFRJT05fV0lUSF9IRVVSSVNUSUNTCiAj
ZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkBAIC03MjMsMTUgKzcyMiwxNiBAQCBib29sIE9wdGlv
bnM6OnNldE9wdGlvbldpdGhvdXRBbGlhcyhjb25zdCBjaGFyKiBhcmcpCiAKICAgICBjb25zdCBj
aGFyKiB2YWx1ZVN0ciA9IGVxdWFsU3RyICsgMTsKIAotICAgIC8vIEZvciBlYWNoIG9wdGlvbiwg
Y2hlY2sgaWYgdGhlIHNwZWNpZmllZCBhcmcgaXMgYSBtYXRjaC4gSWYgc28sIHNldCB0aGUgYXJn
CisgICAgLy8gRm9yIGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0aGUgc3BlY2lmeSBhcmcgaXMgYSBt
YXRjaC4gSWYgc28sIHNldCB0aGUgYXJnCiAgICAgLy8gaWYgdGhlIHZhbHVlIG1ha2VzIHNlbnNl
LiBPdGhlcndpc2UsIG1vdmUgb24gdG8gY2hlY2tpbmcgdGhlIG5leHQgb3B0aW9uLgogI2RlZmlu
ZSBTRVRfT1BUSU9OX0lGX01BVENIKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXywgYXZhaWxh
YmlsaXR5XywgZGVzY3JpcHRpb25fKSBcCiAgICAgaWYgKHN0cmxlbigjbmFtZV8pID09IHN0YXRp
Y19jYXN0PHNpemVfdD4oZXF1YWxTdHIgLSBhcmcpICAgICAgXAogICAgICAgICAmJiAhc3RybmNt
cChhcmcsICNuYW1lXywgZXF1YWxTdHIgLSBhcmcpKSB7ICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgaWYgKEF2YWlsYWJpbGl0eTo6YXZhaWxhYmlsaXR5XyAhPSBBdmFpbGFiaWxpdHk6Ok5vcm1h
bCAgICBcCi0gICAgICAgICAgICAmJiAhaXNBdmFpbGFibGUoT3B0aW9uSUQ6Om5hbWVfLCBBdmFp
bGFiaWxpdHk6OmF2YWlsYWJpbGl0eV8pKSBcCisgICAgICAgIGlmIChBdmFpbGFiaWxpdHk6OmF2
YWlsYWJpbGl0eV8gIT0gQXZhaWxhYmlsaXR5OjpOb3JtYWwgICAgIFwKKyAgICAgICAgICAgICYm
ICFpc0F2YWlsYWJsZShuYW1lXyMjSUQsIEF2YWlsYWJpbGl0eTo6YXZhaWxhYmlsaXR5XykpIFwK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIE9wdGlvblR5cGVzOjp0eXBlXyB2YWx1ZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBPcHRpb25FbnRyeTo6dHlwZV8gdmFs
dWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdmFsdWUgPSAo
ZGVmYXVsdFZhbHVlXyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgIGJvb2wgc3VjY2VzcyA9IHBhcnNlKHZhbHVlU3RyLCB2YWx1ZSk7ICAgICAgICAgICAgICAg
ICAgICAgXAogICAgICAgICBpZiAoc3VjY2VzcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIG5hbWVfKCkgPSB2YWx1ZTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC04MTEsMTAgKzgxMSwxMCBAQCB2
b2lkIE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIER1bXBM
ZXZlbCBsZXZlbCwgY29uc3QgY2hhcgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAg
ICB9CiAKLSAgICBmb3IgKHNpemVfdCBpZCA9IDA7IGlkIDwgTnVtYmVyT2ZPcHRpb25zOyBpZCsr
KSB7CisgICAgZm9yIChpbnQgaWQgPSAwOyBpZCA8IG51bWJlck9mT3B0aW9uczsgaWQrKykgewog
ICAgICAgICBpZiAoc2VwYXJhdG9yICYmIGlkKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
c2VwYXJhdG9yKTsKLSAgICAgICAgZHVtcE9wdGlvbihidWlsZGVyLCBsZXZlbCwgc3RhdGljX2Nh
c3Q8T3B0aW9uSUQ+KGlkKSwgb3B0aW9uSGVhZGVyLCBvcHRpb25Gb290ZXIsIGR1bXBEZWZhdWx0
c09wdGlvbik7CisgICAgICAgIGR1bXBPcHRpb24oYnVpbGRlciwgbGV2ZWwsIHN0YXRpY19jYXN0
PElEPihpZCksIG9wdGlvbkhlYWRlciwgb3B0aW9uRm9vdGVyLCBkdW1wRGVmYXVsdHNPcHRpb24p
OwogICAgIH0KIH0KIApAQCAtODMwLDEwICs4MzAsMTAgQEAgdm9pZCBPcHRpb25zOjpkdW1wQWxs
T3B0aW9ucyhGSUxFKiBzdHJlYW0sIER1bXBMZXZlbCBsZXZlbCwgY29uc3QgY2hhciogdGl0bGUp
CiAgICAgZnByaW50ZihzdHJlYW0sICIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKIH0KIAotdm9pZCBPcHRpb25zOjpkdW1wT3B0aW9uKFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIsIER1bXBMZXZlbCBsZXZlbCwgT3B0aW9uSUQgaWQsCit2b2lkIE9wdGlvbnM6OmR1bXBPcHRp
b24oU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgRHVtcExldmVsIGxldmVsLCBPcHRpb25zOjpJRCBp
ZCwKICAgICBjb25zdCBjaGFyKiBoZWFkZXIsIGNvbnN0IGNoYXIqIGZvb3RlciwgRHVtcERlZmF1
bHRzT3B0aW9uIGR1bXBEZWZhdWx0c09wdGlvbikKIHsKLSAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6
ZV90PihpZCkgPj0gTnVtYmVyT2ZPcHRpb25zKQorICAgIGlmIChpZCA+PSBudW1iZXJPZk9wdGlv
bnMpCiAgICAgICAgIHJldHVybjsgLy8gSWxsZWdhbCBvcHRpb24uCiAKICAgICBPcHRpb24gb3B0
aW9uKGlkKTsKQEAgLTg3NSw3MSArODc1LDI5IEBAIHZvaWQgT3B0aW9uczo6ZW5zdXJlT3B0aW9u
c0FyZUNvaGVyZW50KCkKICAgICAgICAgQ1JBU0goKTsKIH0KIAotT3B0aW9uOjpPcHRpb24oT3B0
aW9uSUQgaWQpCi0gICAgOiBtX2lkKGlkKQotewotICAgIHVuc2lnbmVkIGluZGV4ID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KG1faWQpOwotICAgIHVuc2lnbmVkIHR5cGVTcGVjaWZpY0luZGV4ID0g
T3B0aW9uczo6c19vcHRpb25zSW5mb1tpbmRleF0udHlwZVNwZWNpZmljSW5kZXg7Ci0gICAgT3B0
aW9uVHlwZUlEIHR5cGUgPSBPcHRpb25zOjpzX29wdGlvbnNJbmZvW2luZGV4XS50eXBlOwotCi0g
ICAgc3dpdGNoICh0eXBlKSB7Ci0KLSNkZWZpbmUgSEFORExFX0NBU0UoT3B0aW9uVHlwZV8sIHR5
cGVfKSBcCi0gICAgY2FzZSBPcHRpb25UeXBlSUQ6Ok9wdGlvblR5cGVfOiBcCi0gICAgICAgIEFT
U0VSVCh0eXBlU3BlY2lmaWNJbmRleCA8IE51bWJlck9mIyNPcHRpb25UeXBlXyMjT3B0aW9ucyk7
IFwKLSAgICAgICAgbV92YWwjI09wdGlvblR5cGVfID0gZ19qc2NDb25maWcudHlwZSMjT3B0aW9u
VHlwZV8jI09wdGlvbnNbdHlwZVNwZWNpZmljSW5kZXhdOyBcCi0gICAgICAgIGJyZWFrOwotCi0g
ICAgRk9SX0VBQ0hfSlNDX09QVElPTl9UWVBFKEhBTkRMRV9DQVNFKQotI3VuZGVmIEhBTkRMRV9D
QVNFCi0gICAgfQotfQotCi1jb25zdCBPcHRpb24gT3B0aW9uOjpkZWZhdWx0T3B0aW9uKCkgY29u
c3QKLXsKLSAgICBPcHRpb24gcmVzdWx0OwotICAgIHVuc2lnbmVkIGluZGV4ID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KG1faWQpOwotICAgIHVuc2lnbmVkIHR5cGVTcGVjaWZpY0luZGV4ID0gT3B0
aW9uczo6c19vcHRpb25zSW5mb1tpbmRleF0udHlwZVNwZWNpZmljSW5kZXg7Ci0gICAgT3B0aW9u
VHlwZUlEIHR5cGUgPSBPcHRpb25zOjpzX29wdGlvbnNJbmZvW2luZGV4XS50eXBlOwotCi0gICAg
cmVzdWx0Lm1faWQgPSBtX2lkOwotICAgIHN3aXRjaCAodHlwZSkgewotCi0jZGVmaW5lIEhBTkRM
RV9DQVNFKE9wdGlvblR5cGVfLCB0eXBlXykgXAotICAgIGNhc2UgT3B0aW9uVHlwZUlEOjpPcHRp
b25UeXBlXzogXAotICAgICAgICBBU1NFUlQodHlwZVNwZWNpZmljSW5kZXggPCBOdW1iZXJPZiMj
T3B0aW9uVHlwZV8jI09wdGlvbnMpOyBcCi0gICAgICAgIHJlc3VsdC5tX3ZhbCMjT3B0aW9uVHlw
ZV8gPSBnX2pzY0NvbmZpZy50eXBlIyNPcHRpb25UeXBlXyMjRGVmYXVsdE9wdGlvbnNbdHlwZVNw
ZWNpZmljSW5kZXhdOyBcCi0gICAgICAgIGJyZWFrOwotCi0gICAgRk9SX0VBQ0hfSlNDX09QVElP
Tl9UWVBFKEhBTkRMRV9DQVNFKQotI3VuZGVmIEhBTkRMRV9DQVNFCi0gICAgfQotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KIHZvaWQgT3B0aW9uOjpkdW1wKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIp
IGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICBjYXNlIE9wdGlvblR5cGVJRDo6
Qm9vbDoKLSAgICAgICAgYnVpbGRlci5hcHBlbmQobV92YWxCb29sID8gInRydWUiIDogImZhbHNl
Iik7CisgICAgY2FzZSBPcHRpb25zOjpUeXBlOjpCb29sOgorICAgICAgICBidWlsZGVyLmFwcGVu
ZChtX2VudHJ5LnZhbEJvb2wgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBPcHRpb25UeXBlSUQ6OlVuc2lnbmVkOgotICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihtX3ZhbFVuc2lnbmVkKTsKKyAgICBjYXNlIE9wdGlvbnM6OlR5cGU6OlVuc2lnbmVkOgor
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2VudHJ5LnZhbFVuc2lnbmVkKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBPcHRpb25UeXBlSUQ6OlNpemU6Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKG1fdmFsU2l6ZSk7CisgICAgY2FzZSBPcHRpb25zOjpUeXBlOjpTaXplOgor
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2VudHJ5LnZhbFNpemUpOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIE9wdGlvblR5cGVJRDo6RG91YmxlOgotICAgICAgICBidWlsZGVyLmFw
cGVuZEZpeGVkUHJlY2lzaW9uTnVtYmVyKG1fdmFsRG91YmxlKTsKKyAgICBjYXNlIE9wdGlvbnM6
OlR5cGU6OkRvdWJsZToKKyAgICAgICAgYnVpbGRlci5hcHBlbmRGaXhlZFByZWNpc2lvbk51bWJl
cihtX2VudHJ5LnZhbERvdWJsZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgT3B0aW9uVHlw
ZUlEOjpJbnQzMjoKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV92YWxJbnQzMik7Cisg
ICAgY2FzZSBPcHRpb25zOjpUeXBlOjpJbnQzMjoKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIobV9lbnRyeS52YWxJbnQzMik7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgT3B0aW9uVHlw
ZUlEOjpPcHRpb25SYW5nZToKLSAgICAgICAgYnVpbGRlci5hcHBlbmQobV92YWxPcHRpb25SYW5n
ZS5yYW5nZVN0cmluZygpKTsKKyAgICBjYXNlIE9wdGlvbnM6OlR5cGU6Ok9wdGlvblJhbmdlOgor
ICAgICAgICBidWlsZGVyLmFwcGVuZChtX2VudHJ5LnZhbE9wdGlvblJhbmdlLnJhbmdlU3RyaW5n
KCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE9wdGlvblR5cGVJRDo6T3B0aW9uU3RyaW5n
OiB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbiA9IG1fdmFsT3B0aW9uU3RyaW5nOworICAg
IGNhc2UgT3B0aW9uczo6VHlwZTo6T3B0aW9uU3RyaW5nOiB7CisgICAgICAgIGNvbnN0IGNoYXIq
IG9wdGlvbiA9IG1fZW50cnkudmFsT3B0aW9uU3RyaW5nOwogICAgICAgICBpZiAoIW9wdGlvbikK
ICAgICAgICAgICAgIG9wdGlvbiA9ICIiOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnIicpOwpA
QCAtOTQ3LDggKzkwNSw4IEBAIHZvaWQgT3B0aW9uOjpkdW1wKFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KLSAgICBjYXNlIE9wdGlvblR5cGVJRDo6R0NMb2dMZXZlbDogewotICAgICAgICBidWls
ZGVyLmFwcGVuZChHQ0xvZ2dpbmc6OmxldmVsQXNTdHJpbmcobV92YWxHQ0xvZ0xldmVsKSk7Cisg
ICAgY2FzZSBPcHRpb25zOjpUeXBlOjpHQ0xvZ0xldmVsOiB7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKEdDTG9nZ2luZzo6bGV2ZWxBc1N0cmluZyhtX2VudHJ5LnZhbEdDTG9nTGV2ZWwpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIH0KQEAgLTk1NywyMyArOTE1LDIzIEBAIHZvaWQgT3B0
aW9uOjpkdW1wKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiBib29sIE9wdGlvbjo6b3Bl
cmF0b3I9PShjb25zdCBPcHRpb24mIG90aGVyKSBjb25zdAogewogICAgIHN3aXRjaCAodHlwZSgp
KSB7Ci0gICAgY2FzZSBPcHRpb25UeXBlSUQ6OkJvb2w6Ci0gICAgICAgIHJldHVybiBtX3ZhbEJv
b2wgPT0gb3RoZXIubV92YWxCb29sOwotICAgIGNhc2UgT3B0aW9uVHlwZUlEOjpVbnNpZ25lZDoK
LSAgICAgICAgcmV0dXJuIG1fdmFsVW5zaWduZWQgPT0gb3RoZXIubV92YWxVbnNpZ25lZDsKLSAg
ICBjYXNlIE9wdGlvblR5cGVJRDo6U2l6ZToKLSAgICAgICAgcmV0dXJuIG1fdmFsU2l6ZSA9PSBv
dGhlci5tX3ZhbFNpemU7Ci0gICAgY2FzZSBPcHRpb25UeXBlSUQ6OkRvdWJsZToKLSAgICAgICAg
cmV0dXJuIChtX3ZhbERvdWJsZSA9PSBvdGhlci5tX3ZhbERvdWJsZSkgfHwgKHN0ZDo6aXNuYW4o
bV92YWxEb3VibGUpICYmIHN0ZDo6aXNuYW4ob3RoZXIubV92YWxEb3VibGUpKTsKLSAgICBjYXNl
IE9wdGlvblR5cGVJRDo6SW50MzI6Ci0gICAgICAgIHJldHVybiBtX3ZhbEludDMyID09IG90aGVy
Lm1fdmFsSW50MzI7Ci0gICAgY2FzZSBPcHRpb25UeXBlSUQ6Ok9wdGlvblJhbmdlOgotICAgICAg
ICByZXR1cm4gbV92YWxPcHRpb25SYW5nZS5yYW5nZVN0cmluZygpID09IG90aGVyLm1fdmFsT3B0
aW9uUmFuZ2UucmFuZ2VTdHJpbmcoKTsKLSAgICBjYXNlIE9wdGlvblR5cGVJRDo6T3B0aW9uU3Ry
aW5nOgotICAgICAgICByZXR1cm4gKG1fdmFsT3B0aW9uU3RyaW5nID09IG90aGVyLm1fdmFsT3B0
aW9uU3RyaW5nKQotICAgICAgICAgICAgfHwgKG1fdmFsT3B0aW9uU3RyaW5nICYmIG90aGVyLm1f
dmFsT3B0aW9uU3RyaW5nICYmICFzdHJjbXAobV92YWxPcHRpb25TdHJpbmcsIG90aGVyLm1fdmFs
T3B0aW9uU3RyaW5nKSk7Ci0gICAgY2FzZSBPcHRpb25UeXBlSUQ6OkdDTG9nTGV2ZWw6Ci0gICAg
ICAgIHJldHVybiBtX3ZhbEdDTG9nTGV2ZWwgPT0gb3RoZXIubV92YWxHQ0xvZ0xldmVsOworICAg
IGNhc2UgT3B0aW9uczo6VHlwZTo6Qm9vbDoKKyAgICAgICAgcmV0dXJuIG1fZW50cnkudmFsQm9v
bCA9PSBvdGhlci5tX2VudHJ5LnZhbEJvb2w7CisgICAgY2FzZSBPcHRpb25zOjpUeXBlOjpVbnNp
Z25lZDoKKyAgICAgICAgcmV0dXJuIG1fZW50cnkudmFsVW5zaWduZWQgPT0gb3RoZXIubV9lbnRy
eS52YWxVbnNpZ25lZDsKKyAgICBjYXNlIE9wdGlvbnM6OlR5cGU6OlNpemU6CisgICAgICAgIHJl
dHVybiBtX2VudHJ5LnZhbFNpemUgPT0gb3RoZXIubV9lbnRyeS52YWxTaXplOworICAgIGNhc2Ug
T3B0aW9uczo6VHlwZTo6RG91YmxlOgorICAgICAgICByZXR1cm4gKG1fZW50cnkudmFsRG91Ymxl
ID09IG90aGVyLm1fZW50cnkudmFsRG91YmxlKSB8fCAoc3RkOjppc25hbihtX2VudHJ5LnZhbERv
dWJsZSkgJiYgc3RkOjppc25hbihvdGhlci5tX2VudHJ5LnZhbERvdWJsZSkpOworICAgIGNhc2Ug
T3B0aW9uczo6VHlwZTo6SW50MzI6CisgICAgICAgIHJldHVybiBtX2VudHJ5LnZhbEludDMyID09
IG90aGVyLm1fZW50cnkudmFsSW50MzI7CisgICAgY2FzZSBPcHRpb25zOjpUeXBlOjpPcHRpb25S
YW5nZToKKyAgICAgICAgcmV0dXJuIG1fZW50cnkudmFsT3B0aW9uUmFuZ2UucmFuZ2VTdHJpbmco
KSA9PSBvdGhlci5tX2VudHJ5LnZhbE9wdGlvblJhbmdlLnJhbmdlU3RyaW5nKCk7CisgICAgY2Fz
ZSBPcHRpb25zOjpUeXBlOjpPcHRpb25TdHJpbmc6CisgICAgICAgIHJldHVybiAobV9lbnRyeS52
YWxPcHRpb25TdHJpbmcgPT0gb3RoZXIubV9lbnRyeS52YWxPcHRpb25TdHJpbmcpCisgICAgICAg
ICAgICB8fCAobV9lbnRyeS52YWxPcHRpb25TdHJpbmcgJiYgb3RoZXIubV9lbnRyeS52YWxPcHRp
b25TdHJpbmcgJiYgIXN0cmNtcChtX2VudHJ5LnZhbE9wdGlvblN0cmluZywgb3RoZXIubV9lbnRy
eS52YWxPcHRpb25TdHJpbmcpKTsKKyAgICBjYXNlIE9wdGlvbnM6OlR5cGU6OkdDTG9nTGV2ZWw6
CisgICAgICAgIHJldHVybiBtX2VudHJ5LnZhbEdDTG9nTGV2ZWwgPT0gb3RoZXIubV9lbnRyeS52
YWxHQ0xvZ0xldmVsOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggOWUwYjg4MjFmZDg2NDA2N2Q4NzFiNzUwMDFi
ZDlmYjU3ZDUzZDMwNS4uNThjOWIzZTAyZWFjYjYwOTljNjJiODkxMjM5ZjVmZDk3NmJhOGQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNTIsMTkgKzUzLDM5IEBA
IGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAK
IGNsYXNzIE9wdGlvbnMgewogcHVibGljOgotICAgIGVudW0gY2xhc3MgRHVtcExldmVsIDogdWlu
dDhfdCB7CisgICAgZW51bSBjbGFzcyBEdW1wTGV2ZWwgewogICAgICAgICBOb25lID0gMCwKICAg
ICAgICAgT3ZlcnJpZGRlbiwKICAgICAgICAgQWxsLAogICAgICAgICBWZXJib3NlCiAgICAgfTsK
IAotICAgIGVudW0gY2xhc3MgQXZhaWxhYmlsaXR5IDogdWludDhfdCB7CisgICAgZW51bSBjbGFz
cyBBdmFpbGFiaWxpdHkgewogICAgICAgICBOb3JtYWwgPSAwLAogICAgICAgICBSZXN0cmljdGVk
LAogICAgICAgICBDb25maWd1cmFibGUKICAgICB9OwogCisjZGVmaW5lIERFQ0xBUkVfT1BUSU9O
X0lEKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXywgYXZhaWxhYmlsaXR5XywgZGVzY3JpcHRp
b25fKSBcCisgICAgbmFtZV8jI0lELAorCisgICAgZW51bSBJRCB7CisgICAgICAgIEZPUl9FQUNI
X0pTQ19PUFRJT04oREVDTEFSRV9PUFRJT05fSUQpCisgICAgICAgIG51bWJlck9mT3B0aW9ucwor
ICAgIH07CisjdW5kZWYgREVDTEFSRV9PUFRJT05fSUQKKworICAgIGVudW0gY2xhc3MgVHlwZSB7
CisgICAgICAgIEJvb2wsCisgICAgICAgIFVuc2lnbmVkLAorICAgICAgICBEb3VibGUsCisgICAg
ICAgIEludDMyLAorICAgICAgICBTaXplLAorICAgICAgICBPcHRpb25SYW5nZSwKKyAgICAgICAg
T3B0aW9uU3RyaW5nLAorICAgICAgICBHQ0xvZ0xldmVsLAorICAgIH07CisKICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CiAKICAgICAvLyBQYXJzZXMgYSBz
dHJpbmcgb2Ygb3B0aW9ucyB3aGVyZSBlYWNoIG9wdGlvbiBpcyBvZiB0aGUgZm9ybWF0ICItLTxv
cHRpb25OYW1lPj08dmFsdWU+IgpAQCAtODEsMTggKzEwMiwxMyBAQCBwdWJsaWM6CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50KCk7CiAK
ICNkZWZpbmUgREVDTEFSRV9PUFRJT05fQUNDRVNTT1JTKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZh
bHVlXywgYXZhaWxhYmlsaXR5XywgZGVzY3JpcHRpb25fKSBcCi0gICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgT3B0aW9uVHlwZXM6OnR5cGVfJiBuYW1lXygpIFwKLSAgICB7IFwKLSAgICAgICAgcmV0
dXJuIGdfanNjQ29uZmlnLnR5cGUjI3R5cGVfIyNPcHRpb25zW29wdGlvblR5cGVTcGVjaWZpY0lu
ZGV4PE9wdGlvblR5cGVJRDo6dHlwZV8sIE9wdGlvbklEOjpuYW1lXz4oKV07IFwKLSAgICB9ICBc
Ci0gICAgQUxXQVlTX0lOTElORSBzdGF0aWMgT3B0aW9uVHlwZXM6OnR5cGVfJiBuYW1lXyMjRGVm
YXVsdCgpIFwKLSAgICB7IFwKLSAgICAgICAgcmV0dXJuIGdfanNjQ29uZmlnLnR5cGUjI3R5cGVf
IyNEZWZhdWx0T3B0aW9uc1tvcHRpb25UeXBlU3BlY2lmaWNJbmRleDxPcHRpb25UeXBlSUQ6OnR5
cGVfLCBPcHRpb25JRDo6bmFtZV8+KCldOyBcCi0gICAgfQorICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIE9wdGlvbkVudHJ5Ojp0eXBlXyYgbmFtZV8oKSB7IHJldHVybiBnX2pzY0NvbmZpZy5vcHRp
b25zW25hbWVfIyNJRF0udmFsIyN0eXBlXzsgfSAgXAorICAgIEFMV0FZU19JTkxJTkUgc3RhdGlj
IE9wdGlvbkVudHJ5Ojp0eXBlXyYgbmFtZV8jI0RlZmF1bHQoKSB7IHJldHVybiBnX2pzY0NvbmZp
Zy5kZWZhdWx0T3B0aW9uc1tuYW1lXyMjSURdLnZhbCMjdHlwZV87IH0KKwogICAgIEZPUl9FQUNI
X0pTQ19PUFRJT04oREVDTEFSRV9PUFRJT05fQUNDRVNTT1JTKQogI3VuZGVmIERFQ0xBUkVfT1BU
SU9OX0FDQ0VTU09SUwogCi0gICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoT3B0aW9uSUQsIEF2
YWlsYWJpbGl0eSk7CisgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoSUQsIEF2YWlsYWJpbGl0
eSk7CiAKIHByaXZhdGU6CiAKQEAgLTEwMCw5ICsxMTYsOCBAQCBwcml2YXRlOgogICAgIHN0cnVj
dCBFbnRyeUluZm8gewogICAgICAgICBjb25zdCBjaGFyKiBuYW1lOwogICAgICAgICBjb25zdCBj
aGFyKiBkZXNjcmlwdGlvbjsKLSAgICAgICAgT3B0aW9uVHlwZUlEIHR5cGU7CisgICAgICAgIFR5
cGUgdHlwZTsKICAgICAgICAgQXZhaWxhYmlsaXR5IGF2YWlsYWJpbGl0eTsKLSAgICAgICAgdW5z
aWduZWQgdHlwZVNwZWNpZmljSW5kZXg7CiAgICAgfTsKIAogICAgIE9wdGlvbnMoKTsKQEAgLTEx
NCw1NCArMTI5LDEyMiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGR1bXBPcHRpb25zSWZO
ZWVkZWQoKTsKICAgICBzdGF0aWMgdm9pZCBkdW1wQWxsT3B0aW9ucyhTdHJpbmdCdWlsZGVyJiwg
RHVtcExldmVsLCBjb25zdCBjaGFyKiB0aXRsZSwKICAgICAgICAgY29uc3QgY2hhciogc2VwYXJh
dG9yLCBjb25zdCBjaGFyKiBvcHRpb25IZWFkZXIsIGNvbnN0IGNoYXIqIG9wdGlvbkZvb3Rlciwg
RHVtcERlZmF1bHRzT3B0aW9uKTsKLSAgICBzdGF0aWMgdm9pZCBkdW1wT3B0aW9uKFN0cmluZ0J1
aWxkZXImLCBEdW1wTGV2ZWwsIE9wdGlvbklELAorICAgIHN0YXRpYyB2b2lkIGR1bXBPcHRpb24o
U3RyaW5nQnVpbGRlciYsIER1bXBMZXZlbCwgSUQsCiAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlv
bkhlYWRlciwgY29uc3QgY2hhciogb3B0aW9uRm9vdGVyLCBEdW1wRGVmYXVsdHNPcHRpb24pOwog
CiAgICAgc3RhdGljIGJvb2wgc2V0T3B0aW9uV2l0aG91dEFsaWFzKGNvbnN0IGNoYXIqIGFyZyk7
CiAgICAgc3RhdGljIGJvb2wgc2V0QWxpYXNlZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpOwogICAg
IHN0YXRpYyBib29sIG92ZXJyaWRlQWxpYXNlZE9wdGlvbldpdGhIZXVyaXN0aWMoY29uc3QgY2hh
ciogbmFtZSk7CiAKLSAgICBzdGF0aWMgY29uc3QgRW50cnlJbmZvIHNfb3B0aW9uc0luZm9bTnVt
YmVyT2ZPcHRpb25zXTsKKyAgICBzdGF0aWMgY29uc3QgRW50cnlJbmZvIHNfb3B0aW9uc0luZm9b
bnVtYmVyT2ZPcHRpb25zXTsKIAogICAgIGZyaWVuZCBjbGFzcyBPcHRpb247CiB9OwogCiBjbGFz
cyBPcHRpb24gewogcHVibGljOgotICAgIE9wdGlvbihPcHRpb25JRCk7Ci0KKyAgICBPcHRpb24o
T3B0aW9uczo6SUQgaWQpCisgICAgICAgIDogbV9pZChpZCkKKyAgICAgICAgLCBtX2VudHJ5KGdf
anNjQ29uZmlnLm9wdGlvbnNbbV9pZF0pCisgICAgeworICAgIH0KKyAgICAKICAgICB2b2lkIGR1
bXAoU3RyaW5nQnVpbGRlciYpIGNvbnN0OwogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE9w
dGlvbiYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBPcHRpb24mIG90
aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQogICAgIAotICAgIE9wdGlv
bklEIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBj
b25zdCB7IHJldHVybiBPcHRpb25zOjpzX29wdGlvbnNJbmZvW2lkSW5kZXgoKV0ubmFtZTsgfQot
ICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gT3B0aW9uczo6c19v
cHRpb25zSW5mb1tpZEluZGV4KCldLmRlc2NyaXB0aW9uOyB9Ci0gICAgT3B0aW9uVHlwZUlEIHR5
cGUoKSBjb25zdCB7IHJldHVybiBPcHRpb25zOjpzX29wdGlvbnNJbmZvW2lkSW5kZXgoKV0udHlw
ZTsgfQotICAgIE9wdGlvbnM6OkF2YWlsYWJpbGl0eSBhdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJl
dHVybiBPcHRpb25zOjpzX29wdGlvbnNJbmZvW2lkSW5kZXgoKV0uYXZhaWxhYmlsaXR5OyB9Ci0g
ICAgYm9vbCBpc092ZXJyaWRkZW4oKSBjb25zdCB7IHJldHVybiAqdGhpcyAhPSBkZWZhdWx0T3B0
aW9uKCk7IH0KKyAgICBPcHRpb25zOjpJRCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAg
ICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3Q7CisgICAgY29uc3QgY2hhciogZGVzY3JpcHRpb24o
KSBjb25zdDsKKyAgICBPcHRpb25zOjpUeXBlIHR5cGUoKSBjb25zdDsKKyAgICBPcHRpb25zOjpB
dmFpbGFiaWxpdHkgYXZhaWxhYmlsaXR5KCkgY29uc3Q7CisgICAgYm9vbCBpc092ZXJyaWRkZW4o
KSBjb25zdDsKICAgICBjb25zdCBPcHRpb24gZGVmYXVsdE9wdGlvbigpIGNvbnN0OworICAgIAor
ICAgIGJvb2wmIGJvb2xWYWwoKTsKKyAgICB1bnNpZ25lZCYgdW5zaWduZWRWYWwoKTsKKyAgICBk
b3VibGUmIGRvdWJsZVZhbCgpOworICAgIGludDMyX3QmIGludDMyVmFsKCk7CisgICAgT3B0aW9u
UmFuZ2Ugb3B0aW9uUmFuZ2VWYWwoKTsKKyAgICBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmdWYWwo
KTsKKyAgICBHQ0xvZ2dpbmc6OkxldmVsJiBnY0xvZ0xldmVsVmFsKCk7CisgICAgCitwcml2YXRl
OgorICAgIC8vIE9ubHkgdXNlZCBmb3IgY29uc3RydWN0aW5nIGRlZmF1bHQgT3B0aW9ucy4KKyAg
ICBPcHRpb24oT3B0aW9uczo6SUQgaWQsIE9wdGlvbkVudHJ5JiBlbnRyeSkKKyAgICAgICAgOiBt
X2lkKGlkKQorICAgICAgICAsIG1fZW50cnkoZW50cnkpCisgICAgeworICAgIH0KKyAgICAKKyAg
ICBPcHRpb25zOjpJRCBtX2lkOworICAgIE9wdGlvbkVudHJ5JiBtX2VudHJ5OworfTsKIAotI2Rl
ZmluZSBERUNMQVJFX0FDQ0VTU09SKE9wdGlvblR5cGVfLCB0eXBlXykgXAotICAgIHR5cGVfIHZh
bCMjT3B0aW9uVHlwZV8oKSBjb25zdCB7IHJldHVybiBtX3ZhbCMjT3B0aW9uVHlwZV87IH0KLSAg
ICBGT1JfRUFDSF9KU0NfT1BUSU9OX1RZUEUoREVDTEFSRV9BQ0NFU1NPUikKLSN1bmRlZiBERUNM
QVJFX0FDQ0VTU09SCitpbmxpbmUgY29uc3QgY2hhciogT3B0aW9uOjpuYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gT3B0aW9uczo6c19vcHRpb25zSW5mb1ttX2lkXS5uYW1lOworfQogCi1wcml2
YXRlOgotICAgIE9wdGlvbigpIHsgfQoraW5saW5lIGNvbnN0IGNoYXIqIE9wdGlvbjo6ZGVzY3Jp
cHRpb24oKSBjb25zdAoreworICAgIHJldHVybiBPcHRpb25zOjpzX29wdGlvbnNJbmZvW21faWRd
LmRlc2NyaXB0aW9uOworfQorCitpbmxpbmUgT3B0aW9uczo6VHlwZSBPcHRpb246OnR5cGUoKSBj
b25zdAoreworICAgIHJldHVybiBPcHRpb25zOjpzX29wdGlvbnNJbmZvW21faWRdLnR5cGU7Cit9
CiAKLSAgICBzaXplX3QgaWRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVf
dD4obV9pZCk7IH0KK2lubGluZSBPcHRpb25zOjpBdmFpbGFiaWxpdHkgT3B0aW9uOjphdmFpbGFi
aWxpdHkoKSBjb25zdAoreworICAgIHJldHVybiBPcHRpb25zOjpzX29wdGlvbnNJbmZvW21faWRd
LmF2YWlsYWJpbGl0eTsKK30KIAotICAgIE9wdGlvbklEIG1faWQ7Ci0gICAgdW5pb24geworaW5s
aW5lIGJvb2wgT3B0aW9uOjppc092ZXJyaWRkZW4oKSBjb25zdAoreworICAgIHJldHVybiAqdGhp
cyAhPSBkZWZhdWx0T3B0aW9uKCk7Cit9CiAKLSNkZWZpbmUgREVDTEFSRV9NRU1CRVIoT3B0aW9u
VHlwZV8sIHR5cGVfKSBcCi0gICAgICAgIHR5cGVfIG1fdmFsIyNPcHRpb25UeXBlXzsKLSAgICBG
T1JfRUFDSF9KU0NfT1BUSU9OX1RZUEUoREVDTEFSRV9NRU1CRVIpCi0jdW5kZWYgREVDTEFSRV9N
RU1CRVIKK2lubGluZSBjb25zdCBPcHRpb24gT3B0aW9uOjpkZWZhdWx0T3B0aW9uKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gT3B0aW9uKG1faWQsIGdfanNjQ29uZmlnLmRlZmF1bHRPcHRpb25zW21f
aWRdKTsKK30KIAotICAgIH07Ci19OworaW5saW5lIGJvb2wmIE9wdGlvbjo6Ym9vbFZhbCgpCit7
CisgICAgcmV0dXJuIG1fZW50cnkudmFsQm9vbDsKK30KKworaW5saW5lIHVuc2lnbmVkJiBPcHRp
b246OnVuc2lnbmVkVmFsKCkKK3sKKyAgICByZXR1cm4gbV9lbnRyeS52YWxVbnNpZ25lZDsKK30K
KworaW5saW5lIGRvdWJsZSYgT3B0aW9uOjpkb3VibGVWYWwoKQoreworICAgIHJldHVybiBtX2Vu
dHJ5LnZhbERvdWJsZTsKK30KKworaW5saW5lIGludDMyX3QmIE9wdGlvbjo6aW50MzJWYWwoKQor
eworICAgIHJldHVybiBtX2VudHJ5LnZhbEludDMyOworfQorCitpbmxpbmUgT3B0aW9uUmFuZ2Ug
T3B0aW9uOjpvcHRpb25SYW5nZVZhbCgpCit7CisgICAgcmV0dXJuIG1fZW50cnkudmFsT3B0aW9u
UmFuZ2U7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBPcHRpb246Om9wdGlvblN0cmluZ1ZhbCgp
Cit7CisgICAgcmV0dXJuIG1fZW50cnkudmFsT3B0aW9uU3RyaW5nOworfQorCitpbmxpbmUgR0NM
b2dnaW5nOjpMZXZlbCYgT3B0aW9uOjpnY0xvZ0xldmVsVmFsKCkKK3sKKyAgICByZXR1cm4gbV9l
bnRyeS52YWxHQ0xvZ0xldmVsOworfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDk2OTMxZmVkOTYyY2RiYmRh
NWNhNWY1ZTk1MjM4NmRkYTNkODg0NWQuLjBiOWZiODNlMWMzOTY1MmIxYmEwMjIxOWRhM2ZhOGZh
MWZhZGJlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aApAQCAtMjUsMTggKzI1LDE1IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiR0NMb2dn
aW5nLmgiCi0jaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+Ci0KIG5hbWVzcGFjZSBKU0Mgewog
CiAvLyBIb3cgZG8gSlNDIFZNIG9wdGlvbnMgd29yaz8KIC8vID09PT09PT09PT09PT09PT09PT09
PT09PT09PQogLy8gVGhlIEZPUl9FQUNIX0pTQ19PUFRJT04oKSBtYWNybyBiZWxvdyBkZWZpbmVz
IGEgbGlzdCBvZiBhbGwgSlNDIG9wdGlvbnMgaW4gdXNlLAogLy8gYWxvbmcgd2l0aCB0aGVpciB0
eXBlcyBhbmQgZGVmYXVsdCB2YWx1ZXMuIFRoZSBvcHRpb25zIHZhbHVlcyBhcmUgYWN0dWFsbHkK
LS8vIHJlYWxpemVkIGFzIGFycmF5cyBvZiBlYWNoIG9mIHRoZSBPcHRpb25UeXBlcyBpbiBKU0M6
OkNvbmZpZy4KKy8vIHJlYWxpemVkIGFzIGFuIGFycmF5IG9mIE9wdGlvbkVudHJ5IGVsZW1lbnRz
IGluIEpTQzo6Q29uZmlnLgogLy8KLS8vICAgICBPcHRpb25zOjppbml0aWFsaXplKCkgd2lsbCBp
bml0aWFsaXplIHRoZSBhcnJheXMgb2Ygb3B0aW9ucyB2YWx1ZXMgd2l0aAorLy8gICAgIE9wdGlv
bnM6OmluaXRpYWxpemUoKSB3aWxsIGluaXRpYWxpemUgdGhlIGFycmF5IG9mIG9wdGlvbnMgdmFs
dWVzIHdpdGgKIC8vIHRoZSBkZWZhdWx0cyBzcGVjaWZpZWQgaW4gRk9SX0VBQ0hfSlNDX09QVElP
TigpIGJlbG93LiBBZnRlciB0aGF0LCB0aGUgdmFsdWVzIGNhbgogLy8gYmUgcHJvZ3JhbW1hdGlj
YWxseSByZWFkIGFuZCB3cml0dGVuIHRvIHVzaW5nIGFuIGFjY2Vzc29yIG1ldGhvZCB3aXRoIHRo
ZQogLy8gc2FtZSBuYW1lIGFzIHRoZSBvcHRpb24uIEZvciBleGFtcGxlLCB0aGUgb3B0aW9uICJ1
c2VKSVQiIGNhbiBiZSByZWFkIGFuZApAQCAtNTcsNjggKzU0LDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAvLyBjaGVja3MgYXJlIGRvbmUgYWZ0ZXIgdGhlIG9wdGlvbiB2YWx1ZXMgYXJlIHNldC4gSWYg
eW91IGFsdGVyIHRoZSBvcHRpb24KIC8vIHZhbHVlcyBhZnRlciB0aGUgc2FuaXR5IGNoZWNrcyAo
Zm9yIHlvdXIgb3duIHRlc3RpbmcpLCB0aGVuIHlvdSdyZSBsaWFibGUgdG8KIC8vIGVuc3VyZSB0
aGF0IHRoZSBuZXcgdmFsdWVzIHNldCBhcmUgc2FuZSBhbmQgcmVhc29uYWJsZSBmb3IgeW91ciBv
d24gcnVuLgotLy8KLS8vIEFueSBtb2RpZmljYXRpb25zIHRvIG9wdGlvbnMgbXVzdCBiZSBkb25l
IGJlZm9yZSB0aGUgZmlyc3QgVk0gaXMgaW5zdGFudGlhdGUuCi0vLyBPbiBpbnN0YW50aWF0aW9u
IG9mIHRoZSBmaXJzdCBWTSBpbnN0YW5jZSwgdGhlIE9wdGlvbnMgd2lsbCBiZSB3cml0ZSBwcm90
ZWN0ZWQKLS8vIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQgdGhlcmVhZnRlci4KLQotY2xhc3MgT3B0
aW9uUmFuZ2UgewotcHJpdmF0ZToKLSAgICBlbnVtIFJhbmdlU3RhdGUgeyBVbmluaXRpYWxpemVk
LCBJbml0RXJyb3IsIE5vcm1hbCwgSW52ZXJ0ZWQgfTsKLXB1YmxpYzoKLSAgICBPcHRpb25SYW5n
ZSYgb3BlcmF0b3I9IChjb25zdCBpbnQmIHJocykKLSAgICB7IC8vIE9ubHkgbmVlZGVkIGZvciBp
bml0aWFsaXphdGlvbgotICAgICAgICBpZiAoIXJocykgewotICAgICAgICAgICAgbV9zdGF0ZSA9
IFVuaW5pdGlhbGl6ZWQ7Ci0gICAgICAgICAgICBtX3JhbmdlU3RyaW5nID0gMDsKLSAgICAgICAg
ICAgIG1fbG93TGltaXQgPSAwOwotICAgICAgICAgICAgbV9oaWdoTGltaXQgPSAwOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBib29sIGluaXQoY29uc3Qg
Y2hhciopOwotICAgIGJvb2wgaXNJblJhbmdlKHVuc2lnbmVkKTsKLSAgICBjb25zdCBjaGFyKiBy
YW5nZVN0cmluZygpIGNvbnN0IHsgcmV0dXJuIChtX3N0YXRlID4gSW5pdEVycm9yKSA/IG1fcmFu
Z2VTdHJpbmcgOiBzX251bGxSYW5nZVN0cjsgfQotICAgIAotICAgIHZvaWQgZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgY2hhciogY29u
c3Qgc19udWxsUmFuZ2VTdHI7Ci0KLSAgICBSYW5nZVN0YXRlIG1fc3RhdGU7Ci0gICAgY29uc3Qg
Y2hhciogbV9yYW5nZVN0cmluZzsKLSAgICB1bnNpZ25lZCBtX2xvd0xpbWl0OwotICAgIHVuc2ln
bmVkIG1faGlnaExpbWl0OwotfTsKLQotI2RlZmluZSBGT1JfRUFDSF9KU0NfT1BUSU9OX1RZUEUo
dikgXAotICAgIHYoQm9vbCwgYm9vbCkgXAotICAgIHYoVW5zaWduZWQsIHVuc2lnbmVkKSBcCi0g
ICAgdihEb3VibGUsIGRvdWJsZSkgXAotICAgIHYoSW50MzIsIGludDMyX3QpIFwKLSAgICB2KFNp
emUsIHNpemVfdCkgXAotICAgIHYoT3B0aW9uUmFuZ2UsIE9wdGlvblJhbmdlKSBcCi0gICAgdihP
cHRpb25TdHJpbmcsIGNvbnN0IGNoYXIqKSBcCi0gICAgdihHQ0xvZ0xldmVsLCBHQ0xvZ2dpbmc6
OkxldmVsKSBcCi0KLW5hbWVzcGFjZSBPcHRpb25UeXBlcyB7Ci0KLSNkZWZpbmUgREVDTEFSRV9U
WVBFUyhPcHRpb25UeXBlXywgdHlwZV8pIFwKLSAgICB1c2luZyBPcHRpb25UeXBlXyA9IHR5cGVf
OwotICAgIEZPUl9FQUNIX0pTQ19PUFRJT05fVFlQRShERUNMQVJFX1RZUEVTKQotI3VuZGVmIERF
Q0xBUkVfVFlQRVMKLQotfSAvLyBuYW1lc3BhY2UgT3B0aW9uVHlwZXMKLQotZW51bSBjbGFzcyBP
cHRpb25UeXBlSUQgOiB1aW50OF90IHsKLQotI2RlZmluZSBERUNMQVJFX1RZUEVJRChPcHRpb25U
eXBlXywgdHlwZV8pIFwKLSAgICBPcHRpb25UeXBlXywKLSAgICBGT1JfRUFDSF9KU0NfT1BUSU9O
X1RZUEUoREVDTEFSRV9UWVBFSUQpCi0jdW5kZWYgREVDTEFSRV9UWVBFSUQKLQotfTsKIAogI2Rl
ZmluZSBGT1JfRUFDSF9KU0NfT1BUSU9OKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIHYoQm9vbCwgdXNlS2VyblRDU00sIHRydWUsIE5vcm1hbCwgIk5v
dGU6IHRoaXMgbmVlZHMgdG8gZ28gYmVmb3JlIG90aGVyIG9wdGlvbnMgc2luY2UgdGhleSBkZXBl
bmQgb24gdGhpcyB2YWx1ZS4iKSBcCkBAIC01NjgsMjkgKzUwMyw2IEBAIGVudW0gT3B0aW9uRXF1
aXZhbGVuY2UgewogICAgIHYobWF4aW11bUZUTENhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIG1h
eGltdW1GVExDYW5kaWRhdGVCeXRlY29kZUNvc3QsIFNhbWVPcHRpb24pIFwKICAgICB2KG1heGlt
dW1JbmxpbmluZ0NhbGxlclNpemUsIG1heGltdW1JbmxpbmluZ0NhbGxlckJ5dGVjb2RlQ29zdCwg
U2FtZU9wdGlvbikgXAogCi0jZGVmaW5lIERFQ0xBUkVfT1BUSU9OX0lEKHR5cGVfLCBuYW1lXywg
ZGVmYXVsdFZhbHVlXywgYXZhaWxhYmlsaXR5XywgZGVzY3JpcHRpb25fKSBcCi0gICAgbmFtZV8s
Ci1lbnVtIGNsYXNzIE9wdGlvbklEIDogdWludDE2X3QgewotICAgIEZPUl9FQUNIX0pTQ19PUFRJ
T04oREVDTEFSRV9PUFRJT05fSUQpCi19OwotI3VuZGVmIERFQ0xBUkVfT1BUSU9OX0lECi0KLXN0
YXRpYyBjb25zdGV4cHIgc2l6ZV90IEludmFsaWRPcHRpb25JbmRleCA9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCk7Ci0KLXRlbXBsYXRlPE9wdGlvblR5cGVJRCB0eXBlLCBPcHRp
b25JRCBpZD4KLWNvbnN0ZXhwciBzaXplX3Qgb3B0aW9uVHlwZVNwZWNpZmljSW5kZXgoKQotewot
ICAgIHNpemVfdCBpbmRleCA9IDA7Ci0jZGVmaW5lIENPVU5UX0lOREVYX0FORF9GSU5EX01BVENI
KHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXywgYXZhaWxhYmlsaXR5XywgZGVzY3JpcHRpb25f
KSBcCi0gICAgaWYgKGlkID09IE9wdGlvbklEOjpuYW1lXykgXAotICAgICAgICByZXR1cm4gaW5k
ZXg7IFwKLSAgICBpZiAodHlwZSA9PSBPcHRpb25UeXBlSUQ6OnR5cGVfKSBcCi0gICAgICAgIGlu
ZGV4Kys7Ci0KLSAgICBGT1JfRUFDSF9KU0NfT1BUSU9OKENPVU5UX0lOREVYX0FORF9GSU5EX01B
VENIKTsKLSN1bmRlZiBDT1VOVF9JTkRFWF9BTkRfRklORF9NQVRDSAotICAgIHJldHVybiBJbnZh
bGlkT3B0aW9uSW5kZXg7Ci19CiAKIGNvbnN0ZXhwciBzaXplX3QgY291bnROdW1iZXJPZkpTQ09w
dGlvbnMoKQogewpAQCAtNjAzLDI0ICs1MTUsNSBAQCBjb25zdGV4cHIgc2l6ZV90IGNvdW50TnVt
YmVyT2ZKU0NPcHRpb25zKCkKIAogY29uc3RleHByIHNpemVfdCBOdW1iZXJPZk9wdGlvbnMgPSBj
b3VudE51bWJlck9mSlNDT3B0aW9ucygpOwogCi1jb25zdGV4cHIgc2l6ZV90IGNvdW50TnVtYmVy
T2ZKU0NPcHRpb25zT2ZUeXBlKE9wdGlvblR5cGVJRCB0eXBlKQotewotICAgIHNpemVfdCBjb3Vu
dCA9IDA7Ci0jZGVmaW5lIENPVU5UX09QVElPTih0eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8s
IGF2YWlsYWJpbGl0eV8sIGRlc2NyaXB0aW9uXykgXAotICAgIGlmICh0eXBlID09IE9wdGlvblR5
cGVJRDo6dHlwZV8pIFwKLSAgICAgICAgY291bnQrKzsKLSAgICBGT1JfRUFDSF9KU0NfT1BUSU9O
KENPVU5UX09QVElPTik7Ci0jdW5kZWYgQ09VTlRfT1BUSU9OCi0gICAgcmV0dXJuIGNvdW50Owot
fQotCi1jb25zdGV4cHIgc2l6ZV90IE51bWJlck9mQm9vbE9wdGlvbnMgPSBjb3VudE51bWJlck9m
SlNDT3B0aW9uc09mVHlwZShPcHRpb25UeXBlSUQ6OkJvb2wpOwotY29uc3RleHByIHNpemVfdCBO
dW1iZXJPZlVuc2lnbmVkT3B0aW9ucyA9IGNvdW50TnVtYmVyT2ZKU0NPcHRpb25zT2ZUeXBlKE9w
dGlvblR5cGVJRDo6VW5zaWduZWQpOwotY29uc3RleHByIHNpemVfdCBOdW1iZXJPZkRvdWJsZU9w
dGlvbnMgPSBjb3VudE51bWJlck9mSlNDT3B0aW9uc09mVHlwZShPcHRpb25UeXBlSUQ6OkRvdWJs
ZSk7Ci1jb25zdGV4cHIgc2l6ZV90IE51bWJlck9mSW50MzJPcHRpb25zID0gY291bnROdW1iZXJP
ZkpTQ09wdGlvbnNPZlR5cGUoT3B0aW9uVHlwZUlEOjpJbnQzMik7Ci1jb25zdGV4cHIgc2l6ZV90
IE51bWJlck9mU2l6ZU9wdGlvbnMgPSBjb3VudE51bWJlck9mSlNDT3B0aW9uc09mVHlwZShPcHRp
b25UeXBlSUQ6OlNpemUpOwotY29uc3RleHByIHNpemVfdCBOdW1iZXJPZk9wdGlvblJhbmdlT3B0
aW9ucyA9IGNvdW50TnVtYmVyT2ZKU0NPcHRpb25zT2ZUeXBlKE9wdGlvblR5cGVJRDo6T3B0aW9u
UmFuZ2UpOwotY29uc3RleHByIHNpemVfdCBOdW1iZXJPZk9wdGlvblN0cmluZ09wdGlvbnMgPSBj
b3VudE51bWJlck9mSlNDT3B0aW9uc09mVHlwZShPcHRpb25UeXBlSUQ6Ok9wdGlvblN0cmluZyk7
Ci1jb25zdGV4cHIgc2l6ZV90IE51bWJlck9mR0NMb2dMZXZlbE9wdGlvbnMgPSBjb3VudE51bWJl
ck9mSlNDT3B0aW9uc09mVHlwZShPcHRpb25UeXBlSUQ6OkdDTG9nTGV2ZWwpOwotCiB9IC8vIG5h
bWVzcGFjZSBKU0MKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>