<?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>200430</bug_id>
          
          <creation_ts>2019-08-04 16:24:43 -0700</creation_ts>
          <short_desc>[LFC] Remove out-of-flow descendants from Container</short_desc>
          <delta_ts>2019-08-05 22:20:17 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1558390</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-08-04 16:24:43 -0700</bug_when>
    <thetext>this is the last &quot;formatting context type&quot; bit in layout tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558391</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-04 16:25:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/53923980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558392</commentid>
    <comment_count>2</comment_count>
      <attachid>375510</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-04 16:28:38 -0700</bug_when>
    <thetext>Created attachment 375510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558469</commentid>
    <comment_count>3</comment_count>
      <attachid>375510</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-08-05 10:06:45 -0700</bug_when>
    <thetext>Comment on attachment 375510
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=375510&amp;action=review

&gt; Source/WebCore/layout/LayoutState.cpp:205
&gt; +    auto quirksMode = QuirksMode::No;
&gt; +    if (renderView.document().inLimitedQuirksMode())
&gt; +        quirksMode = QuirksMode::Limited;
&gt; +    else if (renderView.document().inQuirksMode())
&gt; +        quirksMode = QuirksMode::Yes;

This might be nicer as a lambda.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558711</commentid>
    <comment_count>4</comment_count>
      <attachid>375600</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-05 22:03:06 -0700</bug_when>
    <thetext>Created attachment 375600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558712</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-08-05 22:03:51 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 375510 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375510&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/LayoutState.cpp:205
&gt; &gt; +    auto quirksMode = QuirksMode::No;
&gt; &gt; +    if (renderView.document().inLimitedQuirksMode())
&gt; &gt; +        quirksMode = QuirksMode::Limited;
&gt; &gt; +    else if (renderView.document().inQuirksMode())
&gt; &gt; +        quirksMode = QuirksMode::Yes;
&gt; 
&gt; This might be nicer as a lambda.
Good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558717</commentid>
    <comment_count>6</comment_count>
      <attachid>375600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-05 22:20:15 -0700</bug_when>
    <thetext>Comment on attachment 375600
Patch

Clearing flags on attachment: 375600

Committed r248290: &lt;https://trac.webkit.org/changeset/248290&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558718</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-05 22:20:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375510</attachid>
            <date>2019-08-04 16:28:38 -0700</date>
            <delta_ts>2019-08-05 22:03:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200430-20190804162836.patch</filename>
            <type>text/plain</type>
            <size>18316</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY5NmUxMmE5MjkxMmRk
MzU0NjdmNTQzM2Y3NzFmOWZhYzNiYzlhOC4uNzlhY2NjOTk5ZWVmNTkyYzA5MDQ0YzMxZjdlZTBj
MTRjOWJlZGFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA4LTA0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVtb3ZlIG91dC1v
Zi1mbG93IGRlc2NlbmRhbnRzIGZyb20gQ29udGFpbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA0MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzUzOTIzOTgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBvdXQtb2YtZmxvdyBkZXNjZW5kYW50IGxpc3QgaXMgdGhlIGxhc3QgImZvcm1hdHRp
bmcgY29udGV4dCB0eXBlIiBiaXQgaW4gdGhlIGxheW91dCB0cmVlLgorICAgICAgICBMZXQncyBj
YWNoZWQgdGhlbSBpbiB0aGUgRm9ybWF0dGluZ1N0YXRlcyBpbnN0ZWFkIGZvciBub3cuIAorCisg
ICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzIGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBs
YXlvdXQvRm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdTdGF0ZTo6YWRkT3V0T2ZGbG93Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ1N0YXRlOjpvdXRPZkZsb3dCb3hlcyBjb25zdCk6CisgICAgICAgICogbGF5b3V0
L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6
OmxheW91dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dFN0YXRlOjpjcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nUm9vdElm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OnJ1bik6Cisg
ICAgICAgICogbGF5b3V0L0xheW91dFN0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QgY29uc3QpOgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dENvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRh
aW5lcjo6YWRkT3V0T2ZGbG93RGVzY2VuZGFudCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVl
QnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXdMYXlv
dXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxheW91dFVzaW5nRm9ybWF0dGluZ0Nv
bnRleHQpOgorCiAyMDE5LTA4LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGluZyBsb2FkcyBzaG91bGQgbm90IHByZXZlbnQgcGFnZSBjYWNoaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA0OTE4NmY2NDU3
MzQ1ZDY0YTI0MmY5YTgyYzI5ZDU5MzM4NDI0YjA0Li40ZjBiODE2N2Q5NTNlZmE3Njc3YjNmNWMx
MTExZDI5MjBiYTdmYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5jcHAKQEAgLTEzMywzMiArMTMzLDIzIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBPcHRpb25hbDxVCiAg
ICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKEdlb21ldHJ5Ojpjb21wdXRlZFBhZGRpbmcobGF5b3V0
Qm94LCAqdXNlZFZhbHVlcykpOwogfQogCi12b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRP
dXRPZkZsb3dEZXNjZW5kYW50cyhjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK3ZvaWQgRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKCkgY29uc3QKIHsKLSAg
ICBpZiAoIWlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YXV0byYgY29udGFpbmVyID0gZG93bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpOwotICAgIGlm
ICghY29udGFpbmVyLmhhc0NoaWxkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIGxh
eW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKLSAgICBMT0dfV0lUSF9TVFJFQU0oRm9y
bWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiU3RhcnQ6IGxheW91dCBvdXQtb2YtZmxv
dyBkZXNjZW5kYW50cyAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRTdGF0ZSA8PCAiIHJvb3Q6ICIg
PDwgJnJvb3QoKSk7Ci0KLSAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGNvbnRhaW5lci5v
dXRPZkZsb3dEZXNjZW5kYW50cygpKSB7Ci0gICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpvdXRP
ZkZsb3dCb3g7CisgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBz
dHJlYW0gPDwgIlN0YXJ0OiBsYXlvdXQgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMgLT4gY29udGV4
dDogIiA8PCAmbGF5b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwgJnJvb3QoKSk7CiAKLSAgICAg
ICAgQVNTRVJUKGxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOworICAg
IGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogZm9ybWF0dGluZ1N0YXRlKCkub3V0T2ZGbG93Qm94
ZXMoKSkgeworICAgICAgICBBU1NFUlQob3V0T2ZGbG93Qm94LT5lc3RhYmxpc2hlc0Zvcm1hdHRp
bmdDb250ZXh0KCkpOwogCi0gICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJv
eCk7Ci0gICAgICAgIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0Qm94
KTsKKyAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKm91dE9mRmxvd0JveCk7CisgICAg
ICAgIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoKm91dE9mRmxvd0JveCk7CiAK
LSAgICAgICAgbGF5b3V0U3RhdGUuY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQobGF5b3V0Qm94KS0+
bGF5b3V0KCk7CisgICAgICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBsYXlvdXRTdGF0ZSgp
LmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KCpvdXRPZkZsb3dCb3gpOworICAgICAgICBmb3JtYXR0
aW5nQ29udGV4dC0+bGF5b3V0KCk7CiAKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2Fs
R2VvbWV0cnkobGF5b3V0Qm94KTsKLSAgICAgICAgbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMo
bGF5b3V0Qm94KTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoKm91
dE9mRmxvd0JveCk7CisgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRPdXRPZkZsb3dE
ZXNjZW5kYW50cygpOwogICAgIH0KLSAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRl
eHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBsYXlvdXQgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMg
LT4gY29udGV4dDogIiA8PCAmbGF5b3V0U3RhdGUgPDwgIiByb290OiAiIDw8ICZyb290KCkpOwor
ICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJF
bmQ6IGxheW91dCBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cyAtPiBjb250ZXh0OiAiIDw8ICZsYXlv
dXRTdGF0ZSgpIDw8ICIgcm9vdDogIiA8PCAmcm9vdCgpKTsKIH0KIAogc3RhdGljIExheW91dFVu
aXQgbWFwSG9yaXpvbnRhbFBvc2l0aW9uVG9BbmNlc3Rvcihjb25zdCBMYXlvdXRTdGF0ZSYgbGF5
b3V0U3RhdGUsIExheW91dFVuaXQgaG9yaXpvbnRhbFBvc2l0aW9uLCBjb25zdCBDb250YWluZXIm
IGNvbnRhaW5pbmdCbG9jaywgY29uc3QgQ29udGFpbmVyJiBhbmNlc3RvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZDE3M2E0ZWY2OTQ3MjA0OWU4MWE5
NWE5M2IwYjY2YWZhYTcwYzNmNy4uYmE0YzY5NGE5OWQ2NjllMDRiZGY5MjhmMmEwODA0MjczYTRh
ODM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTUw
LDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkZvcm1hdHRpbmdDb250ZXh0KCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgY29uc3QgPSAwOwotICAgIHZvaWQgbGF5b3V0T3V0
T2ZGbG93RGVzY2VuZGFudHMoY29uc3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBsYXlvdXRPdXRP
ZkZsb3dEZXNjZW5kYW50cygpIGNvbnN0OwogCiAgICAgc3RydWN0IEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgewogICAgICAgICB2b2lkIGV4cGFuZChMYXlvdXRVbml0IGhvcml6b250YWxWYWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggMGRhNzMwOWUy
MjI3ODBkZmY1ZTc2NDI2OWRjYThhZTRkZDI5Y2M4MC4uMzU3N2NkNTg2MjliM2NmNjFhYTY4NGQ1
Zjg5OGI2ZmRlOTVjY2ZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUu
aApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAi
TGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY0LDYgKzY1LDEyIEBAIHB1
YmxpYzoKIAogICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5b3V0U3RhdGU7IH0KIAorICAgIC8vIFNpbmNlIHdlIGxheW91dCB0aGUgb3V0LW9mLWZsb3cg
Ym94ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dCwgaXQncyBv
a2F5IHRvIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm1hdHRpbmcgc3RhdGUgLWFzIG9wcG9zZWQgdG8g
dGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCisgICAgdXNpbmcgT3V0T2ZGbG93Qm94TGlzdCA9
IFZlY3RvcjxXZWFrUHRyPGNvbnN0IEJveD4+OworICAgIHZvaWQgYWRkT3V0T2ZGbG93Qm94KGNv
bnN0IEJveCYgb3V0T2ZGbG93Qm94KSB7IG1fb3V0T2ZGbG93Qm94ZXMuYXBwZW5kKG1ha2VXZWFr
UHRyKG91dE9mRmxvd0JveCkpOyB9CisgICAgdm9pZCByZW1vdmVPdXRPZkZsb3dCb3goY29uc3Qg
Qm94Jik7CisgICAgY29uc3QgT3V0T2ZGbG93Qm94TGlzdCYgb3V0T2ZGbG93Qm94ZXMoKSBjb25z
dCB7IHJldHVybiBtX291dE9mRmxvd0JveGVzOyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIGNs
YXNzIFR5cGUgeyBCbG9jaywgSW5saW5lLCBUYWJsZSB9OwogICAgIEZvcm1hdHRpbmdTdGF0ZShS
ZWY8RmxvYXRpbmdTdGF0ZT4mJiwgVHlwZSwgTGF5b3V0U3RhdGUmKTsKQEAgLTczLDYgKzgwLDgg
QEAgcHJpdmF0ZToKICAgICBSZWY8RmxvYXRpbmdTdGF0ZT4gbV9mbG9hdGluZ1N0YXRlOwogICAg
IEhhc2hNYXA8Y29uc3QgQm94KiwgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29u
c3RyYWludHM+IG1faW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckJveGVzOwogICAgIE9wdGlv
bmFsPEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzPiBtX2ludHJp
bnNpY1dpZHRoQ29uc3RyYWludHM7CisgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgV2Vha0xpc3RI
YXNoU2V0CisgICAgT3V0T2ZGbG93Qm94TGlzdCBtX291dE9mRmxvd0JveGVzOwogICAgIFR5cGUg
bV90eXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggNWQ4
M2YyNDJkNjQ2OWQxOGZjYmYzMWE4Njk1MzIxNTBjNjMyNmY4Mi4uMmM3ZjBlZGEwNmEwZDllZDFm
ZjExNjdmYTcxM2VhNWYyMjdhOTAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUu
Y3BwCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSAiSW52YWxpZGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCisjaW5jbHVkZSAi
TGF5b3V0VHJlZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAi
VGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9ybWF0dGluZ1N0YXRl
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTgwLDcgKzgyLDcgQEAg
dm9pZCBMYXlvdXRTdGF0ZTo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKGNvbnN0IEJv
eCYgbGF5b3V0Um9vdCkKICAgICBSRUxFQVNFX0FTU0VSVChsYXlvdXRSb290LmVzdGFibGlzaGVz
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CiAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IGNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KGxheW91dFJvb3QpOwogICAgIGZvcm1hdHRpbmdDb250ZXh0LT5s
YXlvdXQoKTsKLSAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFu
dHMobGF5b3V0Um9vdCk7CisgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0Rl
c2NlbmRhbnRzKCk7CiB9CiAKIERpc3BsYXk6OkJveCYgTGF5b3V0U3RhdGU6OmRpc3BsYXlCb3hG
b3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CkBAIC0xMzcsNyArMTM5LDkg
QEAgRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Y3JlYXRlRm9ybWF0dGluZ1N0YXRlRm9y
Rm9ybWF0dGluZ1Jvb3RJZk5lZWRlZChjb24KIAogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB0
aGUgZm9ybWF0dGluZyBjb250ZXh0IGluaGVyaXRzIHRoZSBmbG9hdHMgZnJvbSB0aGUgcGFyZW50
IGZvcm1hdHRpbmcgY29udGV4dC4KICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGZvcm1hdHRpbmcg
c3RhdGUgaW4gd2hpY2ggdGhpcyBmb3JtYXR0aW5nIHJvb3QgbGl2ZXMsIG5vdCB0aGUgb25lIGl0
IGNyZWF0ZXMgYW5kIHVzZSBpdHMgZmxvYXRpbmcgc3RhdGUuCi0gICAgICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZUZv
ckJveChmb3JtYXR0aW5nUm9vdCkuZmxvYXRpbmdTdGF0ZSgpLCAqdGhpcyk7CisgICAgICAgICAg
ICBhdXRvJiBwYXJlbnRGb3JtYXR0aW5nU3RhdGUgPSBjcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JG
b3JtYXR0aW5nUm9vdElmTmVlZGVkKGZvcm1hdHRpbmdSb290LmZvcm1hdHRpbmdDb250ZXh0Um9v
dCgpKTsgCisgICAgICAgICAgICBhdXRvJiBwYXJlbnRGbG9hdGluZ1N0YXRlID0gcGFyZW50Rm9y
bWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPElubGluZUZvcm1hdHRpbmdTdGF0ZT4ocGFyZW50RmxvYXRpbmdTdGF0ZSwgKnRo
aXMpOwogICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgfQogCkBAIC0xODIsNiArMTg2
LDI4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4dD4gTGF5b3V0U3RhdGU6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJvCiAgICAgQ1JBU0goKTsKIH0KIAordm9pZCBM
YXlvdXRTdGF0ZTo6cnVuKGNvbnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCit7CisgICAgYXV0
byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUo
cmVuZGVyVmlldyk7CisgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0YXRlKCppbml0aWFs
Q29udGFpbmluZ0Jsb2NrKTsKKyAgICAvLyBOb3QgZWZmaWNpZW50LCBidXQgdGhpcyBpcyB0ZW1w
b3JhcnkgYW55d2F5LgorICAgIC8vIENvbGxlY3QgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRz
IGF0IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhlIGNvbnRh
aW5pbmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4KKyAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxCb3g+KCppbml0aWFsQ29u
dGFpbmluZ0Jsb2NrKSkgeworICAgICAgICBpZiAoIWRlc2NlbmRhbnQuaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgZm9ybWF0dGlu
Z1N0YXRlID0gbGF5b3V0U3RhdGUuY3JlYXRlRm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ1Jv
b3RJZk5lZWRlZChkZXNjZW5kYW50LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKTsKKyAgICAgICAg
Zm9ybWF0dGluZ1N0YXRlLmFkZE91dE9mRmxvd0JveChkZXNjZW5kYW50KTsKKyAgICB9CisgICAg
YXV0byBxdWlya3NNb2RlID0gUXVpcmtzTW9kZTo6Tm87CisgICAgaWYgKHJlbmRlclZpZXcuZG9j
dW1lbnQoKS5pbkxpbWl0ZWRRdWlya3NNb2RlKCkpCisgICAgICAgIHF1aXJrc01vZGUgPSBRdWly
a3NNb2RlOjpMaW1pdGVkOworICAgIGVsc2UgaWYgKHJlbmRlclZpZXcuZG9jdW1lbnQoKS5pblF1
aXJrc01vZGUoKSkKKyAgICAgICAgcXVpcmtzTW9kZSA9IFF1aXJrc01vZGU6OlllczsKKyAgICBs
YXlvdXRTdGF0ZS5zZXRRdWlya3NNb2RlKHF1aXJrc01vZGUpOworICAgIGxheW91dFN0YXRlLnVw
ZGF0ZUxheW91dCgpOworICAgIGxheW91dFN0YXRlLnZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5n
TGF5b3V0VHJlZShyZW5kZXJWaWV3KTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRTdGF0ZS5oCmluZGV4IGQ5ZDEwYzBiODYyZDMwOWM3ODBlMDIzZjU0MDg1NWI0ZjZkMmVjNTcu
Ljk4ZGQ4YzU3NzdlZGQxMTUyNThhY2E5ZDhkMzgxMWY2NTA0YzEzNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRTdGF0ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAorI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CkBAIC00Nyw3ICs0OCw2IEBAIG5hbWVzcGFjZSBMYXlvdXQgewog
CiBlbnVtIGNsYXNzIFN0eWxlRGlmZjsKIGNsYXNzIEJveDsKLWNsYXNzIENvbnRhaW5lcjsKIGNs
YXNzIEZvcm1hdHRpbmdDb250ZXh0OwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogCkBAIC02Miw2
ICs2Miw5IEBAIGNsYXNzIExheW91dFN0YXRlIHsKIHB1YmxpYzoKICAgICBMYXlvdXRTdGF0ZShj
b25zdCBDb250YWluZXImIGluaXRpYWxDb250YWluaW5nQmxvY2spOwogCisgICAgLy8gRklYTUU6
IFRoaXMgaXMgYSB0ZW1wb3JhcnkgZW50cnkgcG9pbnQgZm9yIExGQyBsYXlvdXQuCisgICAgc3Rh
dGljIHZvaWQgcnVuKGNvbnN0IFJlbmRlclZpZXcmKTsKKwogICAgIHZvaWQgdXBkYXRlTGF5b3V0
KCk7CiAgICAgdm9pZCBzdHlsZUNoYW5nZWQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKICAgICBl
bnVtIGNsYXNzIFF1aXJrc01vZGUgeyBObywgTGltaXRlZCwgWWVzIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmNwcAppbmRleCA2NGFjYzZjMjA4OWY3OTRmZjMzZGIzM2I2OGM0YzYyYTEx
MDE4ZmNhLi5jNDQ3ZDY2YTZlOTBmMjYwZDY0MmJjZjZlYWJiODA5MWViNjA4NmI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE3Miw2ICsxNzIsOCBAQCB2b2lkIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChGbG9hdGluZ0Nv
bnRleHQmIGZsb2F0aQogICAgIC8vIENvbWUgYmFjayBhbmQgZmluYWxpemUgdGhlIHJvb3QncyBn
ZW9tZXRyeS4KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0
cmVhbSA8PCAiW0NvbXB1dGVdIC0+IFtIZWlnaHRdW01hcmdpbl0gLT4gZm9yIGxheW91dEJveCgi
IDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGxheW91
dEJveCk7CisgICAgLy8gTm93IHRoYXQgd2UgY29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdl
IGNhbiBnbyBiYWNrIGFuZCBsYXlvdXQgdGhlIG91dC1vZi1mbG93IGRlc2NlZGFudHMgKGlmIGFu
eSkuCisgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKCk7
CiAKICAgICAvLyBGbG9hdCByZWxhdGVkIGZpbmFsIHBvc2l0aW9uaW5nLgogICAgIGlmIChsYXlv
dXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkgewpAQCAtMTc5LDkgKzE4MSw2IEBAIHZvaWQg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KEZsb2F0
aW5nQ29udGV4dCYgZmxvYXRpCiAgICAgICAgIGZsb2F0aW5nQ29udGV4dC5mbG9hdGluZ1N0YXRl
KCkuYXBwZW5kKGxheW91dEJveCk7CiAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3guZXN0YWJsaXNo
ZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpCiAgICAgICAgIGNvbXB1dGVQb3NpdGlvblRvQXZv
aWRGbG9hdHMoZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwotCi0gICAgLy8gTm93IHRoYXQg
d2UgY29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNhbiBnbyBiYWNrIGFuZCBsYXlvdXQg
dGhlIG91dC1vZi1mbG93IGRlc2NlZGFudHMgKGlmIGFueSkuCi0gICAgZm9ybWF0dGluZ0NvbnRl
eHQtPmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKGxheW91dEJveCk7CiB9CiAKIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3Qg
Qm94JiBsYXlvdXRCb3gpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAK
aW5kZXggMTk4MGE5NTMxOWUzNThhNzU0NmE2NDA2YTk1OGUxOTk4YTJiZmVmZi4uNTk1MGI0MTFk
NjU2NDdhNTI3ZWU5MjAyYTJhYWRkMGZlYmFkMjJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcApAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIHJvb3QsIFVzZWRI
CiAgICAgLy8gQ29tZSBiYWNrIGFuZCBmaW5hbGl6ZSB0aGUgcm9vdCdzIGhlaWdodCBhbmQgbWFy
Z2luLgogICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4ocm9vdCk7CiAgICAgLy8gTm93IHRoYXQg
d2UgY29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNhbiBnbyBiYWNrIGFuZCBsYXlvdXQg
dGhlIG91dC1vZi1mbG93IGRlc2NlZGFudHMgKGlmIGFueSkuCi0gICAgZm9ybWF0dGluZ0NvbnRl
eHQtPmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKHJvb3QpOworICAgIGZvcm1hdHRpbmdDb250
ZXh0LT5sYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cygpOwogfQogCiB2b2lkIElubGluZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRIZWlnaHRGb3JSZXBsYWNlZElubGluZUJveChj
b25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJv
eC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXgg
OGVkNDBmY2UzOTQ1YzgxNzk5YTQ3MWMxMDE3YzRkMjliNmI3OWIxYy4uMzBjNDQxZDkyMGJhMTYz
ZDc1YTFjMzI5YjJhMTEzOWU5NDhmZTc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIGlzRmxvYXRp
bmdQb3NpdGlvbmVkKCkgfHwgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0KIAogICAgIGNvbnN0
IENvbnRhaW5lciogY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBD
b250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCgpIGNvbnN0OworICAgIGNvbnN0IENvbnRh
aW5lciYgZm9ybWF0dGluZ0NvbnRleHRSb290KCkgY29uc3Q7CiAgICAgY29uc3QgQ29udGFpbmVy
JiBpbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAKICAgICBib29sIGlzRGVzY2VuZGFu
dE9mKGNvbnN0IENvbnRhaW5lciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAKaW5kZXggMjUwZGQ1ZjUwYjQzMTcx
NDkyZWU2NmQzN2M2MDE4YjA2NWU3NGQ3Mi4uNzRlMmE4NmIyZDY3ZjRkNzg2MjljYWM1MjhlMTc1
Mjk1NWVlMzllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRDb250YWluZXIuY3BwCkBAIC05MSwxNCArOTEsNiBAQCB2b2lkIENvbnRhaW5lcjo6
c2V0TGFzdENoaWxkKEJveCYgY2hpbGRCb3gpCiAgICAgbV9sYXN0Q2hpbGQgPSAmY2hpbGRCb3g7
CiB9CiAKLXZvaWQgQ29udGFpbmVyOjphZGRPdXRPZkZsb3dEZXNjZW5kYW50KGNvbnN0IEJveCYg
b3V0T2ZGbG93Qm94KQotewotICAgIC8vIFNpbmNlIHdlIGxheW91dCB0aGUgb3V0LW9mLWZsb3cg
Ym94ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dCwKLSAgICAv
LyBpdCdzIG9rYXkgdG8gc3RvcmUgdGhlbSBhdCB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3Qg
bGV2ZWwgLWFzIG9wcG9zZWQgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCi0gICAgQVNT
RVJUKGVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7Ci0gICAgbV9vdXRPZkZsb3dEZXNj
ZW5kYW50cy5hcHBlbmQobWFrZVdlYWtQdHIob3V0T2ZGbG93Qm94KSk7Ci19Ci0KIH0KIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250
YWluZXIuaAppbmRleCAyN2YzMWZjMTBmYjQ4ZmU2MmQ0Mjk2YzZhNzVhNDg2ZWYxYjg1Zjk4Li5j
YjIzMDdhNWZmMTFjN2Q4MDFjMGQyMGVhZjA4NWM4YTc2NjZjODY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaApAQCAtMjksNyAr
MjksNiBAQAogCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Yy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNTMsMTYgKzUyLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0luRmxvd0NoaWxkKCkgY29u
c3QgeyByZXR1cm4gZmlyc3RJbkZsb3dDaGlsZCgpOyB9CiAgICAgYm9vbCBoYXNJbkZsb3dPckZs
b2F0aW5nQ2hpbGQoKSBjb25zdCB7IHJldHVybiBmaXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgp
OyB9CiAKLSAgICBjb25zdCBWZWN0b3I8V2Vha1B0cjxjb25zdCBCb3g+PiYgb3V0T2ZGbG93RGVz
Y2VuZGFudHMoKSBjb25zdCB7IHJldHVybiBtX291dE9mRmxvd0Rlc2NlbmRhbnRzOyB9Ci0KICAg
ICB2b2lkIHNldEZpcnN0Q2hpbGQoQm94Jik7CiAgICAgdm9pZCBzZXRMYXN0Q2hpbGQoQm94Jik7
Ci0gICAgdm9pZCBhZGRPdXRPZkZsb3dEZXNjZW5kYW50KGNvbnN0IEJveCYpOwogCiBwcml2YXRl
OgogICAgIEJveCogbV9maXJzdENoaWxkIHsgbnVsbHB0ciB9OwogICAgIEJveCogbV9sYXN0Q2hp
bGQgeyBudWxscHRyIH07Ci0gICAgVmVjdG9yPFdlYWtQdHI8Y29uc3QgQm94Pj4gbV9vdXRPZkZs
b3dEZXNjZW5kYW50czsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAppbmRleCA5YWRhYjg1M2ZhNTQ3ZGM3
ZGQ4ODI0ZWNjOGRiODhhNzE5MDk1ZjY4Li5jYTMxMGE5NDQwODRiM2I1NDkyY2M4Y2QyOTMxNWY2
ODA0ZjE4M2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC03NSwxNSArNzUsNiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8Q29udGFpbmVyPiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZShjb25zdCBSZW5kZXJW
aWV3JiByZW5kZQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gaW5pdGlhbENvbnRh
aW5pbmdCbG9jayhuZXcgQ29udGFpbmVyKFdURjo6bnVsbG9wdCwgV1RGTW92ZShzdHlsZSkpKTsK
ICAgICBUcmVlQnVpbGRlcjo6Y3JlYXRlU3ViVHJlZShyZW5kZXJWaWV3LCAqaW5pdGlhbENvbnRh
aW5pbmdCbG9jayk7Ci0KLSAgICAvLyBOb3QgZWZmaWNpZW50LCBidXQgdGhpcyBpcyB0ZW1wb3Jh
cnkgYW55d2F5LgotICAgIC8vIENvbGxlY3QgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRzIGF0
IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhlIGNvbnRhaW5p
bmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4KLSAgICBmb3Ig
KGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxCb3g+KCppbml0aWFsQ29udGFp
bmluZ0Jsb2NrKSkgewotICAgICAgICBpZiAoIWRlc2NlbmRhbnQuaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY29uc3RfY2FzdDxDb250YWlu
ZXImPihkZXNjZW5kYW50LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKS5hZGRPdXRPZkZsb3dEZXNj
ZW5kYW50KGRlc2NlbmRhbnQpOwotICAgIH0KLQogICAgIHJldHVybiBpbml0aWFsQ29udGFpbmlu
Z0Jsb2NrOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xh
eW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250
ZXh0LmNwcAppbmRleCAyNmYxYjVhNmQ4YzE1NDU0MTRiZjlmZGEyNmY5MDFhNDQwZGZjZGRmLi4y
YzUzMDE1MzFjYzM1MjIzZGRkOTMyN2E1OWNhNGQ2ODkyNzM1MGEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTM5LDEyICszOSw4IEBA
CiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdERp
c2FsbG93ZWRTY29wZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KICNpZiBFTkFCTEUoTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKLSNp
bmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgotI2lu
Y2x1ZGUgIkxheW91dFRyZWVCdWlsZGVyLmgiCiAjZW5kaWYKIAogI2luY2x1ZGUgPHd0Zi9TZXRG
b3JTY29wZS5oPgpAQCAtNTgsMTYgKzU0LDcgQEAgc3RhdGljIHZvaWQgbGF5b3V0VXNpbmdGb3Jt
YXR0aW5nQ29udGV4dChjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogewogICAgIGlmICgh
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5n
Q29udGV4dEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gaW5pdGlhbENvbnRh
aW5pbmdCbG9jayA9IExheW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUocmVuZGVy
Vmlldyk7Ci0gICAgYXV0byBsYXlvdXRTdGF0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5b3V0OjpM
YXlvdXRTdGF0ZT4oKmluaXRpYWxDb250YWluaW5nQmxvY2spOwotICAgIGF1dG8gcXVpcmtzTW9k
ZSA9IExheW91dDo6TGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6Ok5vOwotICAgIGlmIChyZW5kZXJW
aWV3LmRvY3VtZW50KCkuaW5MaW1pdGVkUXVpcmtzTW9kZSgpKQotICAgICAgICBxdWlya3NNb2Rl
ID0gTGF5b3V0OjpMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6TGltaXRlZDsKLSAgICBlbHNlIGlm
IChyZW5kZXJWaWV3LmRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCkpCi0gICAgICAgIHF1aXJrc01v
ZGUgPSBMYXlvdXQ6OkxheW91dFN0YXRlOjpRdWlya3NNb2RlOjpZZXM7Ci0gICAgbGF5b3V0U3Rh
dGUtPnNldFF1aXJrc01vZGUocXVpcmtzTW9kZSk7Ci0gICAgbGF5b3V0U3RhdGUtPnVwZGF0ZUxh
eW91dCgpOwotICAgIGxheW91dFN0YXRlLT52ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGluZ0xheW91
dFRyZWUocmVuZGVyVmlldyk7CisgICAgTGF5b3V0OjpMYXlvdXRTdGF0ZTo6cnVuKHJlbmRlclZp
ZXcpOwogfSAKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375600</attachid>
            <date>2019-08-05 22:03:06 -0700</date>
            <delta_ts>2019-08-05 22:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200430-20190805220305.patch</filename>
            <type>text/plain</type>
            <size>18370</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY5NmUxMmE5MjkxMmRk
MzU0NjdmNTQzM2Y3NzFmOWZhYzNiYzlhOC4uZGZiNTBmNWYzY2NlOGU4NmQ3Y2QyMDI0Y2FhN2Fh
MjU0NDFiYzczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA4LTA0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVtb3ZlIG91dC1v
Zi1mbG93IGRlc2NlbmRhbnRzIGZyb20gQ29udGFpbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA0MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzUzOTIzOTgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAg
ICAgIFRoZSBvdXQtb2YtZmxvdyBkZXNjZW5kYW50IGxpc3QgaXMgdGhlIGxhc3QgImZvcm1hdHRp
bmcgY29udGV4dCB0eXBlIiBiaXQgaW4gdGhlIGxheW91dCB0cmVlLgorICAgICAgICBMZXQncyBj
YWNoZWQgdGhlbSBpbiB0aGUgRm9ybWF0dGluZ1N0YXRlcyBpbnN0ZWFkIGZvciBub3cuIAorCisg
ICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzIGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBs
YXlvdXQvRm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdTdGF0ZTo6YWRkT3V0T2ZGbG93Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ1N0YXRlOjpvdXRPZkZsb3dCb3hlcyBjb25zdCk6CisgICAgICAgICogbGF5b3V0
L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6
OmxheW91dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dFN0YXRlOjpjcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nUm9vdElm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OnJ1bik6Cisg
ICAgICAgICogbGF5b3V0L0xheW91dFN0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QgY29uc3QpOgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dENvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRh
aW5lcjo6YWRkT3V0T2ZGbG93RGVzY2VuZGFudCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVl
QnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXdMYXlv
dXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxheW91dFVzaW5nRm9ybWF0dGluZ0Nv
bnRleHQpOgorCiAyMDE5LTA4LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGluZyBsb2FkcyBzaG91bGQgbm90IHByZXZlbnQgcGFnZSBjYWNoaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA0OTE4NmY2NDU3
MzQ1ZDY0YTI0MmY5YTgyYzI5ZDU5MzM4NDI0YjA0Li40ZjBiODE2N2Q5NTNlZmE3Njc3YjNmNWMx
MTExZDI5MjBiYTdmYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5jcHAKQEAgLTEzMywzMiArMTMzLDIzIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBPcHRpb25hbDxVCiAg
ICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKEdlb21ldHJ5Ojpjb21wdXRlZFBhZGRpbmcobGF5b3V0
Qm94LCAqdXNlZFZhbHVlcykpOwogfQogCi12b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRP
dXRPZkZsb3dEZXNjZW5kYW50cyhjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK3ZvaWQgRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKCkgY29uc3QKIHsKLSAg
ICBpZiAoIWlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YXV0byYgY29udGFpbmVyID0gZG93bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpOwotICAgIGlm
ICghY29udGFpbmVyLmhhc0NoaWxkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIGxh
eW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKLSAgICBMT0dfV0lUSF9TVFJFQU0oRm9y
bWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiU3RhcnQ6IGxheW91dCBvdXQtb2YtZmxv
dyBkZXNjZW5kYW50cyAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRTdGF0ZSA8PCAiIHJvb3Q6ICIg
PDwgJnJvb3QoKSk7Ci0KLSAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGNvbnRhaW5lci5v
dXRPZkZsb3dEZXNjZW5kYW50cygpKSB7Ci0gICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpvdXRP
ZkZsb3dCb3g7CisgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBz
dHJlYW0gPDwgIlN0YXJ0OiBsYXlvdXQgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMgLT4gY29udGV4
dDogIiA8PCAmbGF5b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwgJnJvb3QoKSk7CiAKLSAgICAg
ICAgQVNTRVJUKGxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOworICAg
IGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogZm9ybWF0dGluZ1N0YXRlKCkub3V0T2ZGbG93Qm94
ZXMoKSkgeworICAgICAgICBBU1NFUlQob3V0T2ZGbG93Qm94LT5lc3RhYmxpc2hlc0Zvcm1hdHRp
bmdDb250ZXh0KCkpOwogCi0gICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJv
eCk7Ci0gICAgICAgIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0Qm94
KTsKKyAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKm91dE9mRmxvd0JveCk7CisgICAg
ICAgIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoKm91dE9mRmxvd0JveCk7CiAK
LSAgICAgICAgbGF5b3V0U3RhdGUuY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQobGF5b3V0Qm94KS0+
bGF5b3V0KCk7CisgICAgICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBsYXlvdXRTdGF0ZSgp
LmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KCpvdXRPZkZsb3dCb3gpOworICAgICAgICBmb3JtYXR0
aW5nQ29udGV4dC0+bGF5b3V0KCk7CiAKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2Fs
R2VvbWV0cnkobGF5b3V0Qm94KTsKLSAgICAgICAgbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMo
bGF5b3V0Qm94KTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoKm91
dE9mRmxvd0JveCk7CisgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRPdXRPZkZsb3dE
ZXNjZW5kYW50cygpOwogICAgIH0KLSAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRl
eHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBsYXlvdXQgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMg
LT4gY29udGV4dDogIiA8PCAmbGF5b3V0U3RhdGUgPDwgIiByb290OiAiIDw8ICZyb290KCkpOwor
ICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJF
bmQ6IGxheW91dCBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cyAtPiBjb250ZXh0OiAiIDw8ICZsYXlv
dXRTdGF0ZSgpIDw8ICIgcm9vdDogIiA8PCAmcm9vdCgpKTsKIH0KIAogc3RhdGljIExheW91dFVu
aXQgbWFwSG9yaXpvbnRhbFBvc2l0aW9uVG9BbmNlc3Rvcihjb25zdCBMYXlvdXRTdGF0ZSYgbGF5
b3V0U3RhdGUsIExheW91dFVuaXQgaG9yaXpvbnRhbFBvc2l0aW9uLCBjb25zdCBDb250YWluZXIm
IGNvbnRhaW5pbmdCbG9jaywgY29uc3QgQ29udGFpbmVyJiBhbmNlc3RvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZDE3M2E0ZWY2OTQ3MjA0OWU4MWE5
NWE5M2IwYjY2YWZhYTcwYzNmNy4uYmE0YzY5NGE5OWQ2NjllMDRiZGY5MjhmMmEwODA0MjczYTRh
ODM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTUw
LDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkZvcm1hdHRpbmdDb250ZXh0KCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgY29uc3QgPSAwOwotICAgIHZvaWQgbGF5b3V0T3V0
T2ZGbG93RGVzY2VuZGFudHMoY29uc3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBsYXlvdXRPdXRP
ZkZsb3dEZXNjZW5kYW50cygpIGNvbnN0OwogCiAgICAgc3RydWN0IEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgewogICAgICAgICB2b2lkIGV4cGFuZChMYXlvdXRVbml0IGhvcml6b250YWxWYWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggMGRhNzMwOWUy
MjI3ODBkZmY1ZTc2NDI2OWRjYThhZTRkZDI5Y2M4MC4uMzU3N2NkNTg2MjliM2NmNjFhYTY4NGQ1
Zjg5OGI2ZmRlOTVjY2ZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUu
aApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAi
TGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY0LDYgKzY1LDEyIEBAIHB1
YmxpYzoKIAogICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5b3V0U3RhdGU7IH0KIAorICAgIC8vIFNpbmNlIHdlIGxheW91dCB0aGUgb3V0LW9mLWZsb3cg
Ym94ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dCwgaXQncyBv
a2F5IHRvIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm1hdHRpbmcgc3RhdGUgLWFzIG9wcG9zZWQgdG8g
dGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCisgICAgdXNpbmcgT3V0T2ZGbG93Qm94TGlzdCA9
IFZlY3RvcjxXZWFrUHRyPGNvbnN0IEJveD4+OworICAgIHZvaWQgYWRkT3V0T2ZGbG93Qm94KGNv
bnN0IEJveCYgb3V0T2ZGbG93Qm94KSB7IG1fb3V0T2ZGbG93Qm94ZXMuYXBwZW5kKG1ha2VXZWFr
UHRyKG91dE9mRmxvd0JveCkpOyB9CisgICAgdm9pZCByZW1vdmVPdXRPZkZsb3dCb3goY29uc3Qg
Qm94Jik7CisgICAgY29uc3QgT3V0T2ZGbG93Qm94TGlzdCYgb3V0T2ZGbG93Qm94ZXMoKSBjb25z
dCB7IHJldHVybiBtX291dE9mRmxvd0JveGVzOyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIGNs
YXNzIFR5cGUgeyBCbG9jaywgSW5saW5lLCBUYWJsZSB9OwogICAgIEZvcm1hdHRpbmdTdGF0ZShS
ZWY8RmxvYXRpbmdTdGF0ZT4mJiwgVHlwZSwgTGF5b3V0U3RhdGUmKTsKQEAgLTczLDYgKzgwLDgg
QEAgcHJpdmF0ZToKICAgICBSZWY8RmxvYXRpbmdTdGF0ZT4gbV9mbG9hdGluZ1N0YXRlOwogICAg
IEhhc2hNYXA8Y29uc3QgQm94KiwgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29u
c3RyYWludHM+IG1faW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckJveGVzOwogICAgIE9wdGlv
bmFsPEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzPiBtX2ludHJp
bnNpY1dpZHRoQ29uc3RyYWludHM7CisgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgV2Vha0xpc3RI
YXNoU2V0CisgICAgT3V0T2ZGbG93Qm94TGlzdCBtX291dE9mRmxvd0JveGVzOwogICAgIFR5cGUg
bV90eXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggNWQ4
M2YyNDJkNjQ2OWQxOGZjYmYzMWE4Njk1MzIxNTBjNjMyNmY4Mi4uMDY1ZTNjMWI1ZWUyNzc4Nzlh
NzY5ZTkzMGNjNWJjOGU5OGVhYjZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUu
Y3BwCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSAiSW52YWxpZGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCisjaW5jbHVkZSAi
TGF5b3V0VHJlZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAi
VGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9ybWF0dGluZ1N0YXRl
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTgwLDcgKzgyLDcgQEAg
dm9pZCBMYXlvdXRTdGF0ZTo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKGNvbnN0IEJv
eCYgbGF5b3V0Um9vdCkKICAgICBSRUxFQVNFX0FTU0VSVChsYXlvdXRSb290LmVzdGFibGlzaGVz
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CiAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IGNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KGxheW91dFJvb3QpOwogICAgIGZvcm1hdHRpbmdDb250ZXh0LT5s
YXlvdXQoKTsKLSAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFu
dHMobGF5b3V0Um9vdCk7CisgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0Rl
c2NlbmRhbnRzKCk7CiB9CiAKIERpc3BsYXk6OkJveCYgTGF5b3V0U3RhdGU6OmRpc3BsYXlCb3hG
b3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CkBAIC0xMzcsNyArMTM5LDkg
QEAgRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Y3JlYXRlRm9ybWF0dGluZ1N0YXRlRm9y
Rm9ybWF0dGluZ1Jvb3RJZk5lZWRlZChjb24KIAogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB0
aGUgZm9ybWF0dGluZyBjb250ZXh0IGluaGVyaXRzIHRoZSBmbG9hdHMgZnJvbSB0aGUgcGFyZW50
IGZvcm1hdHRpbmcgY29udGV4dC4KICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGZvcm1hdHRpbmcg
c3RhdGUgaW4gd2hpY2ggdGhpcyBmb3JtYXR0aW5nIHJvb3QgbGl2ZXMsIG5vdCB0aGUgb25lIGl0
IGNyZWF0ZXMgYW5kIHVzZSBpdHMgZmxvYXRpbmcgc3RhdGUuCi0gICAgICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZUZv
ckJveChmb3JtYXR0aW5nUm9vdCkuZmxvYXRpbmdTdGF0ZSgpLCAqdGhpcyk7CisgICAgICAgICAg
ICBhdXRvJiBwYXJlbnRGb3JtYXR0aW5nU3RhdGUgPSBjcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JG
b3JtYXR0aW5nUm9vdElmTmVlZGVkKGZvcm1hdHRpbmdSb290LmZvcm1hdHRpbmdDb250ZXh0Um9v
dCgpKTsgCisgICAgICAgICAgICBhdXRvJiBwYXJlbnRGbG9hdGluZ1N0YXRlID0gcGFyZW50Rm9y
bWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPElubGluZUZvcm1hdHRpbmdTdGF0ZT4ocGFyZW50RmxvYXRpbmdTdGF0ZSwgKnRo
aXMpOwogICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgfQogCkBAIC0xODIsNiArMTg2
LDMxIEBAIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4dD4gTGF5b3V0U3RhdGU6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJvCiAgICAgQ1JBU0goKTsKIH0KIAordm9pZCBM
YXlvdXRTdGF0ZTo6cnVuKGNvbnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCit7CisgICAgYXV0
byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUo
cmVuZGVyVmlldyk7CisgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0YXRlKCppbml0aWFs
Q29udGFpbmluZ0Jsb2NrKTsKKyAgICAvLyBOb3QgZWZmaWNpZW50LCBidXQgdGhpcyBpcyB0ZW1w
b3JhcnkgYW55d2F5LgorICAgIC8vIENvbGxlY3QgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRz
IGF0IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhlIGNvbnRh
aW5pbmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4KKyAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxCb3g+KCppbml0aWFsQ29u
dGFpbmluZ0Jsb2NrKSkgeworICAgICAgICBpZiAoIWRlc2NlbmRhbnQuaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgZm9ybWF0dGlu
Z1N0YXRlID0gbGF5b3V0U3RhdGUuY3JlYXRlRm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ1Jv
b3RJZk5lZWRlZChkZXNjZW5kYW50LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKTsKKyAgICAgICAg
Zm9ybWF0dGluZ1N0YXRlLmFkZE91dE9mRmxvd0JveChkZXNjZW5kYW50KTsKKyAgICB9CisgICAg
YXV0byBxdWlya3NNb2RlID0gWyZdIHsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSByZW5kZXJW
aWV3LmRvY3VtZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudC5pbkxpbWl0ZWRRdWlya3NNb2Rl
KCkpCisgICAgICAgICAgICByZXR1cm4gUXVpcmtzTW9kZTo6TGltaXRlZDsKKyAgICAgICAgaWYg
KGRvY3VtZW50LmluUXVpcmtzTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIFF1aXJrc01vZGU6
OlllczsKKyAgICAgICAgcmV0dXJuIFF1aXJrc01vZGU6Ok5vOworICAgIH07CisgICAgbGF5b3V0
U3RhdGUuc2V0UXVpcmtzTW9kZShxdWlya3NNb2RlKCkpOworICAgIGxheW91dFN0YXRlLnVwZGF0
ZUxheW91dCgpOworICAgIGxheW91dFN0YXRlLnZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5
b3V0VHJlZShyZW5kZXJWaWV3KTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5oCmluZGV4IGQ5ZDEwYzBiODYyZDMwOWM3ODBlMDIzZjU0MDg1NWI0ZjZkMmVjNTcuLjk4
ZGQ4YzU3NzdlZGQxMTUyNThhY2E5ZDhkMzgxMWY2NTA0YzEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRTdGF0ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkKIAorI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CkBAIC00Nyw3ICs0OCw2IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBl
bnVtIGNsYXNzIFN0eWxlRGlmZjsKIGNsYXNzIEJveDsKLWNsYXNzIENvbnRhaW5lcjsKIGNsYXNz
IEZvcm1hdHRpbmdDb250ZXh0OwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogCkBAIC02Miw2ICs2
Miw5IEBAIGNsYXNzIExheW91dFN0YXRlIHsKIHB1YmxpYzoKICAgICBMYXlvdXRTdGF0ZShjb25z
dCBDb250YWluZXImIGluaXRpYWxDb250YWluaW5nQmxvY2spOwogCisgICAgLy8gRklYTUU6IFRo
aXMgaXMgYSB0ZW1wb3JhcnkgZW50cnkgcG9pbnQgZm9yIExGQyBsYXlvdXQuCisgICAgc3RhdGlj
IHZvaWQgcnVuKGNvbnN0IFJlbmRlclZpZXcmKTsKKwogICAgIHZvaWQgdXBkYXRlTGF5b3V0KCk7
CiAgICAgdm9pZCBzdHlsZUNoYW5nZWQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKICAgICBlbnVt
IGNsYXNzIFF1aXJrc01vZGUgeyBObywgTGltaXRlZCwgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCA2NGFjYzZjMjA4OWY3OTRmZjMzZGIzM2I2OGM0YzYyYTExMDE4
ZmNhLi5jNDQ3ZDY2YTZlOTBmMjYwZDY0MmJjZjZlYWJiODA5MWViNjA4NmI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE3Miw2ICsxNzIsOCBAQCB2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChGbG9hdGluZ0NvbnRl
eHQmIGZsb2F0aQogICAgIC8vIENvbWUgYmFjayBhbmQgZmluYWxpemUgdGhlIHJvb3QncyBnZW9t
ZXRyeS4KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVh
bSA8PCAiW0NvbXB1dGVdIC0+IFtIZWlnaHRdW01hcmdpbl0gLT4gZm9yIGxheW91dEJveCgiIDw8
ICZsYXlvdXRCb3ggPDwgIikiKTsKICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGxheW91dEJv
eCk7CisgICAgLy8gTm93IHRoYXQgd2UgY29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNh
biBnbyBiYWNrIGFuZCBsYXlvdXQgdGhlIG91dC1vZi1mbG93IGRlc2NlZGFudHMgKGlmIGFueSku
CisgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKCk7CiAK
ICAgICAvLyBGbG9hdCByZWxhdGVkIGZpbmFsIHBvc2l0aW9uaW5nLgogICAgIGlmIChsYXlvdXRC
b3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkgewpAQCAtMTc5LDkgKzE4MSw2IEBAIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KEZsb2F0aW5n
Q29udGV4dCYgZmxvYXRpCiAgICAgICAgIGZsb2F0aW5nQ29udGV4dC5mbG9hdGluZ1N0YXRlKCku
YXBwZW5kKGxheW91dEJveCk7CiAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3guZXN0YWJsaXNoZXNC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpCiAgICAgICAgIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRG
bG9hdHMoZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwotCi0gICAgLy8gTm93IHRoYXQgd2Ug
Y29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNhbiBnbyBiYWNrIGFuZCBsYXlvdXQgdGhl
IG91dC1vZi1mbG93IGRlc2NlZGFudHMgKGlmIGFueSkuCi0gICAgZm9ybWF0dGluZ0NvbnRleHQt
PmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKGxheW91dEJveCk7CiB9CiAKIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQm94
JiBsYXlvdXRCb3gpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggMTk4MGE5NTMxOWUzNThhNzU0NmE2NDA2YTk1OGUxOTk4YTJiZmVmZi4uNTk1MGI0MTFkNjU2
NDdhNTI3ZWU5MjAyYTJhYWRkMGZlYmFkMjJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmNwcApAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIHJvb3QsIFVzZWRICiAg
ICAgLy8gQ29tZSBiYWNrIGFuZCBmaW5hbGl6ZSB0aGUgcm9vdCdzIGhlaWdodCBhbmQgbWFyZ2lu
LgogICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4ocm9vdCk7CiAgICAgLy8gTm93IHRoYXQgd2Ug
Y29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNhbiBnbyBiYWNrIGFuZCBsYXlvdXQgdGhl
IG91dC1vZi1mbG93IGRlc2NlZGFudHMgKGlmIGFueSkuCi0gICAgZm9ybWF0dGluZ0NvbnRleHQt
PmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKHJvb3QpOworICAgIGZvcm1hdHRpbmdDb250ZXh0
LT5sYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cygpOwogfQogCiB2b2lkIElubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRIZWlnaHRGb3JSZXBsYWNlZElubGluZUJveChjb25z
dCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggOGVk
NDBmY2UzOTQ1YzgxNzk5YTQ3MWMxMDE3YzRkMjliNmI3OWIxYy4uMzBjNDQxZDkyMGJhMTYzZDc1
YTFjMzI5YjJhMTEzOWU5NDhmZTc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNG
bG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIGlzRmxvYXRpbmdQ
b3NpdGlvbmVkKCkgfHwgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0KIAogICAgIGNvbnN0IENv
bnRhaW5lciogY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBDb250
YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCgpIGNvbnN0OworICAgIGNvbnN0IENvbnRhaW5l
ciYgZm9ybWF0dGluZ0NvbnRleHRSb290KCkgY29uc3Q7CiAgICAgY29uc3QgQ29udGFpbmVyJiBp
bml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAKICAgICBib29sIGlzRGVzY2VuZGFudE9m
KGNvbnN0IENvbnRhaW5lciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAKaW5kZXggMjUwZGQ1ZjUwYjQzMTcxNDky
ZWU2NmQzN2M2MDE4YjA2NWU3NGQ3Mi4uNzRlMmE4NmIyZDY3ZjRkNzg2MjljYWM1MjhlMTc1Mjk1
NWVlMzllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRDb250YWluZXIuY3BwCkBAIC05MSwxNCArOTEsNiBAQCB2b2lkIENvbnRhaW5lcjo6c2V0
TGFzdENoaWxkKEJveCYgY2hpbGRCb3gpCiAgICAgbV9sYXN0Q2hpbGQgPSAmY2hpbGRCb3g7CiB9
CiAKLXZvaWQgQ29udGFpbmVyOjphZGRPdXRPZkZsb3dEZXNjZW5kYW50KGNvbnN0IEJveCYgb3V0
T2ZGbG93Qm94KQotewotICAgIC8vIFNpbmNlIHdlIGxheW91dCB0aGUgb3V0LW9mLWZsb3cgYm94
ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dCwKLSAgICAvLyBp
dCdzIG9rYXkgdG8gc3RvcmUgdGhlbSBhdCB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgbGV2
ZWwgLWFzIG9wcG9zZWQgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCi0gICAgQVNTRVJU
KGVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7Ci0gICAgbV9vdXRPZkZsb3dEZXNjZW5k
YW50cy5hcHBlbmQobWFrZVdlYWtQdHIob3V0T2ZGbG93Qm94KSk7Ci19Ci0KIH0KIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29u
dGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWlu
ZXIuaAppbmRleCAyN2YzMWZjMTBmYjQ4ZmU2MmQ0Mjk2YzZhNzVhNDg2ZWYxYjg1Zjk4Li5jYjIz
MDdhNWZmMTFjN2Q4MDFjMGQyMGVhZjA4NWM4YTc2NjZjODY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaApAQCAtMjksNyArMjks
NiBAQAogCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTMsMTYgKzUyLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0luRmxvd0NoaWxkKCkgY29uc3Qg
eyByZXR1cm4gZmlyc3RJbkZsb3dDaGlsZCgpOyB9CiAgICAgYm9vbCBoYXNJbkZsb3dPckZsb2F0
aW5nQ2hpbGQoKSBjb25zdCB7IHJldHVybiBmaXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgpOyB9
CiAKLSAgICBjb25zdCBWZWN0b3I8V2Vha1B0cjxjb25zdCBCb3g+PiYgb3V0T2ZGbG93RGVzY2Vu
ZGFudHMoKSBjb25zdCB7IHJldHVybiBtX291dE9mRmxvd0Rlc2NlbmRhbnRzOyB9Ci0KICAgICB2
b2lkIHNldEZpcnN0Q2hpbGQoQm94Jik7CiAgICAgdm9pZCBzZXRMYXN0Q2hpbGQoQm94Jik7Ci0g
ICAgdm9pZCBhZGRPdXRPZkZsb3dEZXNjZW5kYW50KGNvbnN0IEJveCYpOwogCiBwcml2YXRlOgog
ICAgIEJveCogbV9maXJzdENoaWxkIHsgbnVsbHB0ciB9OwogICAgIEJveCogbV9sYXN0Q2hpbGQg
eyBudWxscHRyIH07Ci0gICAgVmVjdG9yPFdlYWtQdHI8Y29uc3QgQm94Pj4gbV9vdXRPZkZsb3dE
ZXNjZW5kYW50czsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAppbmRleCA5YWRhYjg1M2ZhNTQ3ZGM3ZGQ4
ODI0ZWNjOGRiODhhNzE5MDk1ZjY4Li5jYTMxMGE5NDQwODRiM2I1NDkyY2M4Y2QyOTMxNWY2ODA0
ZjE4M2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC03NSwxNSArNzUsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
Q29udGFpbmVyPiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZShjb25zdCBSZW5kZXJWaWV3
JiByZW5kZQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gaW5pdGlhbENvbnRhaW5p
bmdCbG9jayhuZXcgQ29udGFpbmVyKFdURjo6bnVsbG9wdCwgV1RGTW92ZShzdHlsZSkpKTsKICAg
ICBUcmVlQnVpbGRlcjo6Y3JlYXRlU3ViVHJlZShyZW5kZXJWaWV3LCAqaW5pdGlhbENvbnRhaW5p
bmdCbG9jayk7Ci0KLSAgICAvLyBOb3QgZWZmaWNpZW50LCBidXQgdGhpcyBpcyB0ZW1wb3Jhcnkg
YW55d2F5LgotICAgIC8vIENvbGxlY3QgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRzIGF0IHRo
ZSBmb3JtYXR0aW5nIHJvb3QgbGV2ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhlIGNvbnRhaW5pbmcg
YmxvY2sgbGV2ZWwsIHRob3VnaCB0aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4KLSAgICBmb3IgKGF1
dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxCb3g+KCppbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKSkgewotICAgICAgICBpZiAoIWRlc2NlbmRhbnQuaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY29uc3RfY2FzdDxDb250YWluZXIm
PihkZXNjZW5kYW50LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKS5hZGRPdXRPZkZsb3dEZXNjZW5k
YW50KGRlc2NlbmRhbnQpOwotICAgIH0KLQogICAgIHJldHVybiBpbml0aWFsQ29udGFpbmluZ0Js
b2NrOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0
LmNwcAppbmRleCAyNmYxYjVhNmQ4YzE1NDU0MTRiZjlmZGEyNmY5MDFhNDQwZGZjZGRmLi4yYzUz
MDE1MzFjYzM1MjIzZGRkOTMyN2E1OWNhNGQ2ODkyNzM1MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTM5LDEyICszOSw4IEBACiAj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2Fs
bG93ZWRTY29wZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KICNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNs
dWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgotI2luY2x1
ZGUgIkxheW91dFRyZWVCdWlsZGVyLmgiCiAjZW5kaWYKIAogI2luY2x1ZGUgPHd0Zi9TZXRGb3JT
Y29wZS5oPgpAQCAtNTgsMTYgKzU0LDcgQEAgc3RhdGljIHZvaWQgbGF5b3V0VXNpbmdGb3JtYXR0
aW5nQ29udGV4dChjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogewogICAgIGlmICghUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29u
dGV4dEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gaW5pdGlhbENvbnRhaW5p
bmdCbG9jayA9IExheW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUocmVuZGVyVmll
dyk7Ci0gICAgYXV0byBsYXlvdXRTdGF0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5b3V0OjpMYXlv
dXRTdGF0ZT4oKmluaXRpYWxDb250YWluaW5nQmxvY2spOwotICAgIGF1dG8gcXVpcmtzTW9kZSA9
IExheW91dDo6TGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6Ok5vOwotICAgIGlmIChyZW5kZXJWaWV3
LmRvY3VtZW50KCkuaW5MaW1pdGVkUXVpcmtzTW9kZSgpKQotICAgICAgICBxdWlya3NNb2RlID0g
TGF5b3V0OjpMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6TGltaXRlZDsKLSAgICBlbHNlIGlmIChy
ZW5kZXJWaWV3LmRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCkpCi0gICAgICAgIHF1aXJrc01vZGUg
PSBMYXlvdXQ6OkxheW91dFN0YXRlOjpRdWlya3NNb2RlOjpZZXM7Ci0gICAgbGF5b3V0U3RhdGUt
PnNldFF1aXJrc01vZGUocXVpcmtzTW9kZSk7Ci0gICAgbGF5b3V0U3RhdGUtPnVwZGF0ZUxheW91
dCgpOwotICAgIGxheW91dFN0YXRlLT52ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGluZ0xheW91dFRy
ZWUocmVuZGVyVmlldyk7CisgICAgTGF5b3V0OjpMYXlvdXRTdGF0ZTo6cnVuKHJlbmRlclZpZXcp
OwogfSAKICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>