<?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>67567</bug_id>
          
          <creation_ts>2011-09-03 11:29:27 -0700</creation_ts>
          <short_desc>REGRESSION (Safari 5.1 - ToT): File input retains its file icon when the value is reset</short_desc>
          <delta_ts>2011-09-06 22:37:22 -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>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://felixcloutier.com/documents/webkit-fileinput.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Félix Cloutier">felixcca</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>haraken</cc>
    
    <cc>jonlee</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461836</commentid>
    <comment_count>0</comment_count>
    <who name="Félix Cloutier">felixcca</who>
    <bug_when>2011-09-03 11:29:27 -0700</bug_when>
    <thetext>Empty file inputs visually consist of a button and the text &apos;no file selected&apos;. File inputs with a value, instead, have a button, a file icon, and a file label.

However, when an &lt;input type=&quot;file&quot;&gt; is reset through Javascript (input.value = &apos;&apos;), the file label reverts to &apos;no file selected&apos;, but the file icon stays there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461838</commentid>
    <comment_count>1</comment_count>
      <attachid>106265</attachid>
    <who name="Félix Cloutier">felixcca</who>
    <bug_when>2011-09-03 11:35:11 -0700</bug_when>
    <thetext>Created attachment 106265
An HTML page that demonstrates the problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462166</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-09-05 08:31:21 -0700</bug_when>
    <thetext>How recent is this? Can you try bisecting. I can&apos;t reproduce on Chromium using WebKit @94469.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462196</commentid>
    <comment_count>3</comment_count>
    <who name="Félix Cloutier">felixcca</who>
    <bug_when>2011-09-05 11:14:50 -0700</bug_when>
    <thetext>It doesn&apos;t happen with the version of Safari that ships with Mac OS Lion (5.1, 7534.48.3), but it happens with r94508, again using Safari. I&apos;m sorry, I can&apos;t really be any more precise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462324</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-05 19:28:39 -0700</bug_when>
    <thetext>It seems no one clears FileInputType::m_icon.
This issue doesn&apos;t affect Chromium because Chromium doesn&apos;t support icons for file upload controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462376</commentid>
    <comment_count>5</comment_count>
      <attachid>106391</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-05 23:28:54 -0700</bug_when>
    <thetext>Created attachment 106391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462377</commentid>
    <comment_count>6</comment_count>
      <attachid>106392</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-05 23:30:06 -0700</bug_when>
    <thetext>Created attachment 106392
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462555</commentid>
    <comment_count>7</comment_count>
      <attachid>106392</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-09-06 08:46:20 -0700</bug_when>
    <thetext>Comment on attachment 106392
Patch 2

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

Thanks for fixing this -- and the fix is right. I have a small naming nit.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1127
&gt; +void HTMLInputElement::setValueInternal(const String&amp; sanitizedValue, bool sendChangeEvent)

This should be something like valueChanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463156</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-06 22:32:59 -0700</bug_when>
    <thetext>Committed r94639: &lt;http://trac.webkit.org/changeset/94639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463160</commentid>
    <comment_count>9</comment_count>
      <attachid>106392</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-06 22:37:22 -0700</bug_when>
    <thetext>Comment on attachment 106392
Patch 2

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

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1127
&gt;&gt; +void HTMLInputElement::setValueInternal(const String&amp; sanitizedValue, bool sendChangeEvent)
&gt; 
&gt; This should be something like valueChanged.

I don&apos;t agree with it because
- The value is changed in this function. &quot;valueChanged&quot; sounds like &quot;didChangeValue&quot;.
- InputType already has valueChanged(), of which purpose is different from this.

So, I landed this without changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>106265</attachid>
            <date>2011-09-03 11:35:11 -0700</date>
            <delta_ts>2011-09-03 11:35:11 -0700</delta_ts>
            <desc>An HTML page that demonstrates the problem</desc>
            <filename>webkit-fileinput.html</filename>
            <type>text/html</type>
            <size>597</size>
            <attacher name="Félix Cloutier">felixcca</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPHRpdGxlPklzc3VlIDY3NTY3
IOKAkyBXZWJLaXQgRmlsZSBJbnB1dCBEaXNwbGF5IEJ1ZzwvdGl0bGU+CjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExv
YWRlZCcsIGZ1bmN0aW9uKCkKewoJZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1m
aWxlXSIpCgkJLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uKCkKCQl7CgkJCXRo
aXMudmFsdWUgPSAnJzsKCQl9KTsKfSk7Cjwvc2NyaXB0Pgo8cD5TZWxlY3QgYW55IGZpbGUgZm9y
IHRoaXMgJmx0O2lucHV0Jmd0Oy4gQSBzY3JpcHQgd2lsbCByZXNldCB0aGUgdmFsdWUuPC9wPgo8
cD5XYXRjaCBhcyB0aGUgZmlsZSBpY29uIHN0YXlzIHRoZXJlIGV2ZW4gdGhvdWdoIG5vIGZpbGUg
aXMgc2VsZWN0ZWQuPC9wPgo8aW5wdXQgdHlwZT0iZmlsZSI+CjxwPihDb21wYXJlIHRvIHRoaXMg
dmlyZ2luLCBkaXNhYmxlZCBmaWxlIGlucHV0IHRoYXQgaGFzIG5vIGZpbGUgaWNvbi4pPC9wPgo8
aW5wdXQgdHlwZT0iZmlsZSIgZGlzYWJsZWQ+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106391</attachid>
            <date>2011-09-05 23:28:54 -0700</date>
            <delta_ts>2011-09-05 23:29:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67567-20110906152852.patch</filename>
            <type>text/plain</type>
            <size>15503</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1NDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYWY2ZTFiZGNjZTJmN2IxYTkxYzVk
ODZhMmI0ODkxODI2MzdhYjMyLi4zMGI5YzE3MDBjNDViMjNhYjU1N2I3OWJlYTVjODAzOGZiYWVl
NzJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDUgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKFNhZmFyaSA1LjEgLSBUb1Qp
OiBGaWxlIGlucHV0IHJldGFpbnMgaXRzIGZpbGUgaWNvbiB3aGVuIHRoZSB2YWx1ZSBpcyByZXNl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2UuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDktMDUgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSB1bm5lY2Vzc2FyeSBleHBlY3RhdGlvbiwgcmVzdWx0
cyBtYXRjaCB0aGUgZmFsbGJhY2sgcGF0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWxlL2ZpbGUtcmVzZXQtaW4tY2hhbmdlLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTQyMDg4NmFkYzY0YzkxZGUwNWVkZDRmNmNiNzAzMjYwNTg0NmUxYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNo
YW5nZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxwPlJlc2V0dGluZyBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgYnkgc2NyaXB0IHNob3VsZCBj
bGVhciB0aGUgaWNvbi48L3A+Cis8cD5NYW51YWwgdGVzdDogU2VsZWN0IGEgZmlsZSBmb3IgdGhl
IGZpbGUgdXBsb2FkIGNvbnRyb2wsIGFuZCBjb25maXJtIGl0IGhhcyBubyBpY29uLjwvcD4KKzxp
bnB1dCBpZD1maWxlMSB0eXBlPWZpbGU+Cis8L2Zvcm0+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI4ZTc1YjY1OTk1YzZiYjQ1MjYzMDRlN2NkMDMyNGMzNTM2MzNjMjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFu
Z2UuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHA+UmVz
ZXR0aW5nIGEgZmlsZSB1cGxvYWQgY29udHJvbCBieSBzY3JpcHQgc2hvdWxkIGNsZWFyIHRoZSBp
Y29uLjwvcD4KKzxwPk1hbnVhbCB0ZXN0OiBTZWxlY3QgYSBmaWxlIGZvciB0aGUgZmlsZSB1cGxv
YWQgY29udHJvbCwgYW5kIGNvbmZpcm0gaXQgaGFzIG5vIGljb24uPC9wPgorPGlucHV0IGlkPWZp
bGUxIHR5cGU9ZmlsZT4KKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkcmFnRmlsZXNPbnRv
RWxlbWVudChlbGVtZW50LCBmaWxlcykgeworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhG
aWxlcyhmaWxlcyk7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGNlbnRlclgsIGNlbnRlclkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVu
Y3Rpb24gaGFuZGxlQ2hhbmdlKCkgeworICAgIGZpbGUxLnZhbHVlID0gJyc7CisgICAgLy9kb2N1
bWVudC5mb3Jtc1snZjEnXS5yZXNldCgpOworfQorCit2YXIgZmlsZTEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZmlsZTEnKTsKK2ZpbGUxLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGhh
bmRsZUNoYW5nZSk7CitkcmFnRmlsZXNPbnRvRWxlbWVudChmaWxlMSwgWydmb28udHh0J10pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IzYTVlZDMxNjIzZDEyNWM4MDE3YTUx
NzJiMmU0ODAxZDEyOTFiNi4uNDY0MGNmMDE5NjA1YTEyNDI4Y2FiYjI0YWNkOGQ4Y2UzNmRmNTc3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDExLTA5LTA1ICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OIChTYWZhcmkgNS4xIC0g
VG9UKTogRmlsZSBpbnB1dCByZXRhaW5zIGl0cyBmaWxlIGljb24gd2hlbiB0aGUgdmFsdWUgaXMg
cmVzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3
NTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBJ
bnRyb2R1Y2UgSW5wdXRUeXBlOjpzZXRWYWx1ZSgpLCB3aGljaCBpcyBjYWxsZWQgYnkgSFRNTElu
cHV0RWxlbWVudDo6c2V0VmFsdWUoKS4KKyAgICAgICAgLSBDbGVhciBtX2ljb24gaW4gRmlsZUlu
cHV0VHlwZTo6c2V0VmFsdWUoKS4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9maWxlL2Zp
bGUtcmVzZXQtaW4tY2hhbmdlLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9y
bXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBodG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUJ1dHRvbklucHV0VHlw
ZTo6c2V0VmFsdWUpOgorICAgICAgICBJbXBsZW1lbmF0aW9uIGZvciB0aGUgImRlZmF1bHQiIG1v
ZGUuCisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1pbnB1dC1lbGVtZW50LWF0dHJpYnV0ZXMuaHRtbCNkb20t
aW5wdXQtdmFsdWUtZGVmYXVsdAorICAgICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5o
OgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgIEltcGxl
bWVuYXRpb24gZm9yIHRoZSAiZGVmYXVsdC9vbiIgbW9kZS4KKyAgICAgICAgaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWlu
cHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI2RvbS1pbnB1dC12YWx1ZS1kZWZhdWx0LW9uCisg
ICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNldFZh
bHVlKToKKyAgICAgICAgSW1wbGVtZW5hdGlvbiBmb3IgdGhlICJmaWxlbmFtZSIgbW9kZSwgYW5k
IGNsZWFyaW5nIG1faWNvbi4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmli
dXRlcy5odG1sI2RvbS1pbnB1dC12YWx1ZS1maWxlbmFtZQorICAgICAgICAqIGh0bWwvRmlsZUlu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIE1vdmUgc29t
ZSBjb2RlIHRvIElucHV0VHlwZTo6c2V0VmFsdWUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwpOiBBIGhlbHBlciBmb3IgSW5wdXRUeXBlOjpz
ZXRWYWx1ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZGRlbklucHV0
VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICBJbXBsZW1lbnRhdGlvbiBmb3IgdGhlICJkZWZhdWx0
IiBtb2RlLgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRWYWx1ZSk6
CisgICAgICAgIEltcGxlbWVudGF0aW9uIGZvciB0aGUgInZhbHVlIiBtb2RlLgorICAgICAgICBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS9jb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjZG9tLWlucHV0LXZhbHVlLXZh
bHVlCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnNl
dFZhbHVlKToKKyAgICAgICAgSW4gYWRkaXRpb24gdG8gdGhlICJ2YWx1ZSIgbW9kZSBwcm9jZXNz
aW5nLCB1cGRhdGVzIHBsYWNlaG9sZGVyIHZpc2liaWxpbHR5LgorICAgICAgICAqIGh0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmg6CisKIDIwMTEtMDktMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICB3aW5kb3cuSFRNTFNwYW5FbGVtZW50IGRvZXMgbm90IGV4aXN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAppbmRleCA5M2Zl
ODczYjk3YmJhYmM0YjYzMzNjYzIyOGU2YWY3OWY2OTcxMDA5Li4xZWVlMTgwMTY3Mzg3YWZmYjRi
YzUzMzg4YWMyMzA0MWIxYzlhYjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VCdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRv
bklucHV0VHlwZS5jcHAKQEAgLTMzLDExICszMywxNCBAQAogI2luY2x1ZGUgIkJhc2VCdXR0b25J
bnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
QnV0dG9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKKwogYm9vbCBCYXNlQnV0dG9uSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShGb3JtRGF0
YUxpc3QmLCBib29sKSBjb25zdAogewogICAgIC8vIEJ1dHRvbnMgZXhjZXB0IG92ZXJyaWRkZW4g
dHlwZXMgYXJlIG5ldmVyIHN1Y2Nlc3NmdWwuCkBAIC05Nyw0ICsxMDAsOSBAQCBib29sIEJhc2VC
dXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCkKK3sKKyAgICBlbGVtZW50KCktPnNldEF0
dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaAppbmRleCAx
NjA3ZjNjNDM4ZGI2NmI4ZmVlYzkwNGJiODkxNTViZjI4NDgyZTc4Li4wOWMxNTY2YmM2YzY2NWNh
MWUwM2U4ODkxMzY0ZDU3NzFkZWVmMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VCdXR0b25JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0
b25JbnB1dFR5cGUuaApAQCAtNDgsNiArNDgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVsZW1l
bnQpOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuY3BwCmluZGV4IGIxOTg3MTgxZTY2ODkyNmUxODBjZmNhZDkyZGRjNmNh
ZDRjNDZkZTYuLmRmMWJjYWY4Mjc3ZGQyZWVjMzUwODlkMGUzNmFhZjc4OTFmZjQyMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcApAQCAtNDAs
NiArNDAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CisKIGJvb2wgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3Rh
dGUoU3RyaW5nJiByZXN1bHQpIGNvbnN0CiB7CiAgICAgcmVzdWx0ID0gZWxlbWVudCgpLT5jaGVj
a2VkKCkgPyAib24iIDogIm9mZiI7CkBAIC0xMDIsNiArMTA0LDExIEBAIGJvb2wgQmFzZUNoZWNr
YWJsZUlucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzZXRWYWx1ZShj
b25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sKQoreworICAgIGVsZW1lbnQoKS0+c2V0
QXR0cmlidXRlKHZhbHVlQXR0ciwgc2FuaXRpemVkVmFsdWUpOworfQorCiBib29sIEJhc2VDaGVj
a2FibGVJbnB1dFR5cGU6OmlzQ2hlY2thYmxlKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggMjUxNTAwMzgy
Y2U4MGM2MTdlODAwMTE3YjE4MWM4OWJlOTU5M2IzNi4uMmI1Y2EzNmM5Njg2ZWQ2MmUxNTlmOTI4
NWM3Y2NmMzk4ZGEzNmRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxl
SW5wdXRUeXBlLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CiAgICAgdmlydHVhbCBTdHJp
bmcgZmFsbGJhY2tWYWx1ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRl
RnJvbUF0dHJpYnV0ZSgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVja2FibGUoKTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDVkNWNhMzlmYTdhYTg4MmFhMTQ3Y2M5MTA5
YjAyNDExYzNjOTc0YTQuLmI3YWNiN2NmYTE4OWEzZmQyY2FkN2U5YTlmNjJiZDI5ZTgwNTdlZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjE2LDYgKzIxNiwxMyBA
QCBib29sIEZpbGVJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBib29sKQoreworICAgIG1fZmlsZUxpc3QtPmNsZWFyKCk7CisgICAgbV9pY29u
LmNsZWFyKCk7CisgICAgZWxlbWVudCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKIHZv
aWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZUxpc3QoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhz
KQogewogICAgIG1fZmlsZUxpc3QtPmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5oCmluZGV4IDllYWE3MmUzYTI4N2MxMzQwMjYxYzAxMjgwNGI3ZDllOGVmODA3ZjkuLjllZjky
YmY5NWJiMmM1Zjg4Y2Q0ZjcyOWEyYjE1NDY3NWJmZTliYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5oCkBAIC01OSw2ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3Bl
Y2lmaWNWYWx1ZShTdHJpbmcmKTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0
b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFs
dWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpOwogICAgIHZpcnR1YWwgdm9pZCByZWNl
aXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdmlydHVhbCBJY29u
KiBpY29uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNzc3Y2E4NjMyZmE5
MTcxN2ViNDIzZTdlMmY3MmVlOWU0YTc1MTJiMS4uZGIwZTAxOTRlMjgyODI3ZGYxZjI3Njg5MWE3
NmViZmM2ZGRlMjI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CkBAIC0xMDg4LDE4ICsxMDg4LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShj
b25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKIAogICAgIHNldExhc3RD
aGFuZ2VXYXNOb3RVc2VyRWRpdCgpOwogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVu
ZGVyZXIoZmFsc2UpOwotICAgIGlmIChtX2lucHV0VHlwZS0+c3RvcmVzVmFsdWVTZXBhcmF0ZUZy
b21BdHRyaWJ1dGUoKSkgewotICAgICAgICBpZiAoZmlsZXMoKSkKLSAgICAgICAgICAgIGZpbGVz
KCktPmNsZWFyKCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV92YWx1ZUlmRGlydHkg
PSBzYW5pdGl6ZWRWYWx1ZTsKLSAgICAgICAgICAgIG1fd2FzTW9kaWZpZWRCeVVzZXIgPSBzZW5k
Q2hhbmdlRXZlbnQ7Ci0gICAgICAgICAgICBpZiAoaXNUZXh0RmllbGQoKSkKLSAgICAgICAgICAg
ICAgICB1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkoZmFsc2UpOwotICAgICAgICB9Ci0gICAg
ICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgc2V0QXR0cmli
dXRlKHZhbHVlQXR0ciwgc2FuaXRpemVkVmFsdWUpOworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1
ZShzYW5pdGl6ZWRWYWx1ZSwgc2VuZENoYW5nZUV2ZW50KTsKIAogICAgIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpOwogCkBAIC0xMTM1LDYgKzExMjQsMTIgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFuZ2VFdmVudCkKICAg
ICBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6
c2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHNlbmRD
aGFuZ2VFdmVudCkKK3sKKyAgICBtX3ZhbHVlSWZEaXJ0eSA9IHNhbml0aXplZFZhbHVlOworICAg
IG1fd2FzTW9kaWZpZWRCeVVzZXIgPSBzZW5kQ2hhbmdlRXZlbnQ7Cit9CisKIGRvdWJsZSBIVE1M
SW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRU
eXBlLT52YWx1ZUFzRGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApp
bmRleCA1ZjM5MjRkZTg2YzNiMGI4NjgwZGViODk0NmYzNTVkMjAyMjkzZGI3Li4wZTUzYzQ2YzE4
YTNiNTZlM2NhNDVlYWFkNTc2MzE5ZDMyZTRmMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaApAQCAtMjI2LDYgKzIyNiw3IEBAIHB1YmxpYzoKICAgICAvLyBPdGhlcndp
c2UsIHRoZXkgd291bGQgYmUgcHJpdmF0ZS4KICAgICBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVj
a2VkUmFkaW9CdXR0b25zKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVDaGVja2VkUmFkaW9CdXR0
b25zKCk7CisgICAgdm9pZCBzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYsIGJvb2wgc2Vu
ZENoYW5nZUV2ZW50KTsKICNpZiBFTkFCTEUoV0NTUykKICAgICBib29sIGlzQ29uZm9ybVRvSW5w
dXRNYXNrKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hp
ZGRlbklucHV0VHlwZS5jcHAKaW5kZXggM2FlZDFkYmNmMTA3NGNmOTUwZGMzMGQxN2FjYjZhYjU2
YWVmYzdjZi4uYjQyYWQyNDI2YzYzNDM1M2VkMTFkYzllY2FhNjM2YzQ3ZWMzNDMzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApAQCAtMzIsMTAgKzMyLDE0IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlkZGVuSW5wdXRUeXBlLmgiCiAKKyNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOworCiBQYXNzT3duUHRyPElucHV0VHlwZT4gSGlkZGVuSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEhpZGRlbklucHV0VHlwZShlbGVtZW50KSk7CkBAIC03MCw2ICs3NCwxMSBAQCBib29s
IEhpZGRlbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBIaWRkZW5JbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0
IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wpCit7CisgICAgZWxlbWVudCgpLT5zZXRBdHRy
aWJ1dGUodmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7Cit9CisKIGJvb2wgSGlkZGVuSW5wdXRU
eXBlOjppc0hpZGRlblR5cGUoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggZTIzMmEzNmY2NmI1MjJjYjg3NGRkODEwOTk4
ODkyMjE0NTQ1M2UyYy4uMzMwMTgxYTI4ZGU2NTY3YWY1NGFiZDM5Mjg3ZWYzMzg0MjA5M2Y1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00OSw2ICs0OSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRl
KCk7CiAgICAgdmlydHVhbCBib29sIGlzSGlkZGVuVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCk7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGJiMjZmN2Q3ZDQxMDIx
NmU4OTg1MjFhMTYzYTQzMjFlZjk0NGRkZTUuLjE2OTVhNzBhMzI1YzkxZWQzZjg0ZGExYmEzYzhi
ZDM1NDA5YWI4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTUyNSw2ICs1MjUs
MTIgQEAgYm9vbCBJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0
cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQoreworICAgIGVsZW1l
bnQoKS0+c2V0VmFsdWVJbnRlcm5hbChzYW5pdGl6ZWRWYWx1ZSwgc2VuZENoYW5nZUV2ZW50KTsK
KyAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKwogYm9vbCBJbnB1dFR5
cGU6OmNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAppbmRleCAzNGIyYzA0NTk3MmRhOWFmYjY4MGQzNmQ3NTEyNTZiMDI5
ZjlmMjkwLi40NTkzMDI5YTg4NTk4MWQ5M2U2MWZlNDVkMmJkODQ3MjdjMDBlMDFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIyNCw2ICsyMjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKTsKICAgICB2
aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29s
IHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCk7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50KTsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVzZXRPbkRvY3VtZW50QWN0aXZhdGlvbigpOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRS
ZXNwZWN0U3BlZWNoQXR0cmlidXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKaW5kZXggNzk3MTNhMTgxYWIxNDdlYmRmM2EyYmE0ZDE4NmJjMDA1MjZiNDYy
MC4uOWEzZGVkNTc5ODJlNTI4MDI5ZWQ1MzliZWQ0NTlmN2M2Nzc1ZjU2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNzMsNiArNzMsMTIgQEAgYm9v
bCBUZXh0RmllbGRJbnB1dFR5cGU6OmNhblNldFN1Z2dlc3RlZFZhbHVlKCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQoreworICAgIElucHV0VHlw
ZTo6c2V0VmFsdWUoc2FuaXRpemVkVmFsdWUsIHNlbmRDaGFuZ2VFdmVudCk7CisgICAgZWxlbWVu
dCgpLT51cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkoZmFsc2UpOworfQorCiB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ewogICAgIGlmICghZWxlbWVudCgpLT5mb2N1c2VkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuaAppbmRleCBhMjU1M2RmYTc0ZWJlZWRjYjZhYTIxOGYyMDRkMDQxOTBh
ZWU1NTY2Li5jZGE3MWJiOWViYTI4N2RjMmNiYjg2NGYwZjZmMTBhYjE4OGM2N2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3VibWl0SW1wbGljaXRseShFdmVudCopOwog
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJl
bmRlclN0eWxlKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9k
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
c2VuZENoYW5nZUV2ZW50KTsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0
IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgp
OwogICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106392</attachid>
            <date>2011-09-05 23:30:06 -0700</date>
            <delta_ts>2011-09-06 22:37:22 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-67567-20110906153004.patch</filename>
            <type>text/plain</type>
            <size>15466</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1NDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYWY2ZTFiZGNjZTJmN2IxYTkxYzVk
ODZhMmI0ODkxODI2MzdhYjMyLi4zMGI5YzE3MDBjNDViMjNhYjU1N2I3OWJlYTVjODAzOGZiYWVl
NzJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDUgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKFNhZmFyaSA1LjEgLSBUb1Qp
OiBGaWxlIGlucHV0IHJldGFpbnMgaXRzIGZpbGUgaWNvbiB3aGVuIHRoZSB2YWx1ZSBpcyByZXNl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2UuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDktMDUgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSB1bm5lY2Vzc2FyeSBleHBlY3RhdGlvbiwgcmVzdWx0
cyBtYXRjaCB0aGUgZmFsbGJhY2sgcGF0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWxlL2ZpbGUtcmVzZXQtaW4tY2hhbmdlLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTQyMDg4NmFkYzY0YzkxZGUwNWVkZDRmNmNiNzAzMjYwNTg0NmUxYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNo
YW5nZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxwPlJlc2V0dGluZyBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgYnkgc2NyaXB0IHNob3VsZCBj
bGVhciB0aGUgaWNvbi48L3A+Cis8cD5NYW51YWwgdGVzdDogU2VsZWN0IGEgZmlsZSBmb3IgdGhl
IGZpbGUgdXBsb2FkIGNvbnRyb2wsIGFuZCBjb25maXJtIGl0IGhhcyBubyBpY29uLjwvcD4KKzxp
bnB1dCBpZD1maWxlMSB0eXBlPWZpbGU+Cis8L2Zvcm0+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9maWxlLXJlc2V0LWluLWNoYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRkNmExNGUzN2QxYWQzZjc1MjI1NWRjZDI0YWZkNmMxYzcyNjAwMzcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFu
Z2UuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHA+UmVz
ZXR0aW5nIGEgZmlsZSB1cGxvYWQgY29udHJvbCBieSBzY3JpcHQgc2hvdWxkIGNsZWFyIHRoZSBp
Y29uLjwvcD4KKzxwPk1hbnVhbCB0ZXN0OiBTZWxlY3QgYSBmaWxlIGZvciB0aGUgZmlsZSB1cGxv
YWQgY29udHJvbCwgYW5kIGNvbmZpcm0gaXQgaGFzIG5vIGljb24uPC9wPgorPGlucHV0IGlkPWZp
bGUxIHR5cGU9ZmlsZT4KKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkcmFnRmlsZXNPbnRv
RWxlbWVudChlbGVtZW50LCBmaWxlcykgeworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhG
aWxlcyhmaWxlcyk7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGNlbnRlclgsIGNlbnRlclkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVu
Y3Rpb24gaGFuZGxlQ2hhbmdlKCkgeworICAgIGZpbGUxLnZhbHVlID0gJyc7Cit9CisKK3ZhciBm
aWxlMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlMScpOworZmlsZTEuYWRkRXZlbnRM
aXN0ZW5lcignY2hhbmdlJywgaGFuZGxlQ2hhbmdlKTsKK2RyYWdGaWxlc09udG9FbGVtZW50KGZp
bGUxLCBbJ2Zvby50eHQnXSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjNh
NWVkMzE2MjNkMTI1YzgwMTdhNTE3MmIyZTQ4MDFkMTI5MWI2Li40NjQwY2YwMTk2MDVhMTI0Mjhj
YWJiMjRhY2Q4ZDhjZTM2ZGY1NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEt
MDktMDUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JF
U1NJT04gKFNhZmFyaSA1LjEgLSBUb1QpOiBGaWxlIGlucHV0IHJldGFpbnMgaXRzIGZpbGUgaWNv
biB3aGVuIHRoZSB2YWx1ZSBpcyByZXNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIEludHJvZHVjZSBJbnB1dFR5cGU6OnNldFZhbHVlKCksIHdoaWNo
IGlzIGNhbGxlZCBieSBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZSgpLgorICAgICAgICAtIENs
ZWFyIG1faWNvbiBpbiBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZSgpLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9mb3Jtcy9maWxlL2ZpbGUtcmVzZXQtaW4tY2hhbmdlLmh0bWwKKwor
ICAgICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQnV0dG9uSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgIEltcGxlbWVuYXRpb24g
Zm9yIHRoZSAiZGVmYXVsdCIgbW9kZS4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3Nw
ZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWlucHV0LWVsZW1lbnQt
YXR0cmlidXRlcy5odG1sI2RvbS1pbnB1dC12YWx1ZS1kZWZhdWx0CisgICAgICAgICogaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnNldFZh
bHVlKToKKyAgICAgICAgSW1wbGVtZW5hdGlvbiBmb3IgdGhlICJkZWZhdWx0L29uIiBtb2RlLgor
ICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
L211bHRpcGFnZS9jb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjZG9tLWlucHV0
LXZhbHVlLWRlZmF1bHQtb24KKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICBJbXBsZW1lbmF0aW9uIGZvciB0aGUg
ImZpbGVuYW1lIiBtb2RlLCBhbmQgY2xlYXJpbmcgbV9pY29uLgorICAgICAgICBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9jb21tb24t
aW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjZG9tLWlucHV0LXZhbHVlLWZpbGVuYW1lCisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVl
KToKKyAgICAgICAgTW92ZSBzb21lIGNvZGUgdG8gSW5wdXRUeXBlOjpzZXRWYWx1ZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbCk6IEEgaGVs
cGVyIGZvciBJbnB1dFR5cGU6OnNldFZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgIEltcGxlbWVudGF0
aW9uIGZvciB0aGUgImRlZmF1bHQiIG1vZGUuCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgSW1wbGVtZW50YXRpb24gZm9yIHRoZSAidmFs
dWUiIG1vZGUuCisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1pbnB1dC1lbGVtZW50LWF0dHJpYnV0ZXMuaHRt
bCNkb20taW5wdXQtdmFsdWUtdmFsdWUKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAg
ICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICBJbiBhZGRpdGlvbiB0byB0aGUg
InZhbHVlIiBtb2RlIHByb2Nlc3NpbmcsIHVwZGF0ZXMgcGxhY2Vob2xkZXIgdmlzaWJpbGlsdHku
CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaDoKKwogMjAxMS0wOS0wNSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHdpbmRvdy5IVE1MU3BhbkVs
ZW1lbnQgZG9lcyBub3QgZXhpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUJ1dHRvbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1
dFR5cGUuY3BwCmluZGV4IDkzZmU4NzNiOTdiYmFiYzRiNjMzM2NjMjI4ZTZhZjc5ZjY5NzEwMDku
LjFlZWUxODAxNjczODdhZmZiNGJjNTMzODhhYzIzMDQxYjFjOWFiMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApAQCAtMzMsMTEgKzMzLDE0IEBACiAj
aW5jbHVkZSAiQmFzZUJ1dHRvbklucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJCdXR0b24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCiBib29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OmFw
cGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0CiB7CiAgICAgLy8gQnV0dG9u
cyBleGNlcHQgb3ZlcnJpZGRlbiB0eXBlcyBhcmUgbmV2ZXIgc3VjY2Vzc2Z1bC4KQEAgLTk3LDQg
KzEwMCw5IEBAIGJvb2wgQmFzZUJ1dHRvbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZy
b21BdHRyaWJ1dGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBCYXNlQnV0dG9uSW5w
dXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sKQorewor
ICAgIGVsZW1lbnQoKS0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgc2FuaXRpemVkVmFsdWUpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRv
bklucHV0VHlwZS5oCmluZGV4IDE2MDdmM2M0MzhkYjY2YjhmZWVjOTA0YmI4OTE1NWJmMjg0ODJl
NzguLjA5YzE1NjZiYzZjNjY1Y2ExZTAzZTg4OTEzNjRkNTc3MWRlZWYwZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCkBAIC00OCw2ICs0OCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiwgUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9u
KGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CiAgICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2Vw
YXJhdGVGcm9tQXR0cmlidXRlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKaW5kZXggYjE5ODcxODFlNjY4
OTI2ZTE4MGNmY2FkOTJkZGM2Y2FkNGM0NmRlNi4uZGYxYmNhZjgyNzdkZDJlZWMzNTA4OWQwZTM2
YWFmNzg5MWZmNDIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2th
YmxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJ
bnB1dFR5cGUuY3BwCkBAIC00MCw2ICs0MCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwogYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBl
OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKIHsKICAgICByZXN1
bHQgPSBlbGVtZW50KCktPmNoZWNrZWQoKSA/ICJvbiIgOiAib2ZmIjsKQEAgLTEwMiw2ICsxMDQs
MTEgQEAgYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJv
bUF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEJhc2VDaGVja2FibGVJ
bnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wpCit7
CisgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7
Cit9CisKIGJvb2wgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6aXNDaGVja2FibGUoKQogewogICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2th
YmxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuaAppbmRleCAyNTE1MDAzODJjZTgwYzYxN2U4MDAxMTdiMTgxYzg5YmU5NTkzYjM2Li4yYjVj
YTM2Yzk2ODZlZDYyZTE1OWY5Mjg1YzdjY2YzOThkYTM2ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaApAQCAtNTAsNiArNTAsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50
KTsKICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCk7CiAgICAgdmlydHVhbCBib29s
IHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCk7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYWJs
ZSgpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggNWQ1Y2Ez
OWZhN2FhODgyYWExNDdjYzkxMDliMDI0MTFjM2M5NzRhNC4uYjdhY2I3Y2ZhMTg5YTNmZDJjYWQ3
ZTlhOWY2MmJkMjllODA1N2VlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yMTYsNiArMjE2LDEzIEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBh
cmF0ZUZyb21BdHRyaWJ1dGUoKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEZpbGVJbnB1
dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wpCit7CisgICAgbV9maWxlTGlzdC0+
Y2xlYXIoKTsKKyAgICBtX2ljb24uY2xlYXIoKTsKKyAgICBlbGVtZW50KCktPnNldE5lZWRzU3R5
bGVSZWNhbGMoKTsKK30KKwogdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlTGlzdChjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7CiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggOWVhYTcyZTNhMjg3YzEzNDAyNjFjMDEyODA0
YjdkOWU4ZWY4MDdmOS4uOWVmOTJiZjk1YmIyYzVmODhjZDRmNzI5YTJiMTU0Njc1YmZlOWJhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpOyAvLyBDaGVja2VkIGZpcnN0
LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgogICAgIHZp
cnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCk7CiAg
ICAgdmlydHVhbCB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKICAgICB2aXJ0dWFsIEljb24qIGljb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNG
aWxlVXBsb2FkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAppbmRleCA3NzdjYTg2MzJmYTkxNzE3ZWI0MjNlN2UyZjcyZWU5ZTRhNzUxMmIxLi5kYjBlMDE5
NGUyODI4MjdkZjFmMjc2ODkxYTc2ZWJmYzZkZGUyMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEwODgsMTggKzEwODgsNyBAQCB2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2
ZW50KQogCiAgICAgc2V0TGFzdENoYW5nZVdhc05vdFVzZXJFZGl0KCk7CiAgICAgc2V0Rm9ybUNv
bnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSk7Ci0gICAgaWYgKG1faW5wdXRUeXBlLT5z
dG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpKSB7Ci0gICAgICAgIGlmIChmaWxlcygp
KQotICAgICAgICAgICAgZmlsZXMoKS0+Y2xlYXIoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBtX3ZhbHVlSWZEaXJ0eSA9IHNhbml0aXplZFZhbHVlOwotICAgICAgICAgICAgbV93YXNN
b2RpZmllZEJ5VXNlciA9IHNlbmRDaGFuZ2VFdmVudDsKLSAgICAgICAgICAgIGlmIChpc1RleHRG
aWVsZCgpKQotICAgICAgICAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eShmYWxz
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIH0gZWxz
ZQotICAgICAgICBzZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7CisgICAg
bV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCBzZW5kQ2hhbmdlRXZlbnQpOwog
CiAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAKQEAgLTExMzUsNiArMTEyNCwxMiBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wg
c2VuZENoYW5nZUV2ZW50KQogICAgIG5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoKTsKIH0KIAordm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYgc2FuaXRp
emVkVmFsdWUsIGJvb2wgc2VuZENoYW5nZUV2ZW50KQoreworICAgIG1fdmFsdWVJZkRpcnR5ID0g
c2FuaXRpemVkVmFsdWU7CisgICAgbV93YXNNb2RpZmllZEJ5VXNlciA9IHNlbmRDaGFuZ2VFdmVu
dDsKK30KKwogZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnZhbHVlQXNEYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDVmMzkyNGRlODZjM2IwYjg2ODBkZWI4OTQ2ZjM1NWQy
MDIyOTNkYjcuLjBlNTNjNDZjMThhM2I1NmUzY2E0NWVhYWQ1NzYzMTlkMzJlNGYwNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMjYsNiArMjI2LDcgQEAgcHVi
bGljOgogICAgIC8vIE90aGVyd2lzZSwgdGhleSB3b3VsZCBiZSBwcml2YXRlLgogICAgIENoZWNr
ZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRpb0J1dHRvbnMoKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZUNoZWNrZWRSYWRpb0J1dHRvbnMoKTsKKyAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29u
c3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpOwogI2lmIEVOQUJMRShXQ1NTKQogICAg
IGJvb2wgaXNDb25mb3JtVG9JbnB1dE1hc2soY29uc3QgU3RyaW5nJikgY29uc3Q7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAppbmRleCAzYWVkMWRiY2YxMDc0
Y2Y5NTBkYzMwZDE3YWNiNmFiNTZhZWZjN2NmLi5iNDJhZDI0MjZjNjM0MzUzZWQxMWRjOWVjYWE2
MzZjNDdlYzM0MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCkBA
IC0zMiwxMCArMzIsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIaWRkZW5J
bnB1dFR5cGUuaCIKIAorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBIaWRkZW5JbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgSGlkZGVuSW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAg
LTcwLDYgKzc0LDExIEBAIGJvb2wgSGlkZGVuSW5wdXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRl
RnJvbUF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEhpZGRlbklucHV0
VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCkKK3sKKyAg
ICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKK30K
KwogYm9vbCBIaWRkZW5JbnB1dFR5cGU6OmlzSGlkZGVuVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCBlMjMyYTM2
ZjY2YjUyMmNiODc0ZGQ4MTA5OTg4OTIyMTQ1NDUzZTJjLi4zMzAxODFhMjhkZTY1NjdhZjU0YWJk
MzkyODdlZjMzODQyMDkzZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRl
bklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgK
QEAgLTQ5LDYgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVT
ZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5UeXBlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJp
YnV0ZXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCk7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
aW5kZXggYmIyNmY3ZDdkNDEwMjE2ZTg5ODUyMWExNjNhNDMyMWVmOTQ0ZGRlNS4uMTY5NWE3MGEz
MjVjOTFlZDNmODRkYTFiYTNjOGJkMzU0MDlhYjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcApAQCAtNTI1LDYgKzUyNSwxMiBAQCBib29sIElucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBh
cmF0ZUZyb21BdHRyaWJ1dGUoKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIElucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpCit7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0aXplZFZhbHVl
LCBzZW5kQ2hhbmdlRXZlbnQpOworICAgIGVsZW1lbnQoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygp
OworfQorCiBib29sIElucHV0VHlwZTo6Y2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDM0YjJjMDQ1OTcyZGE5
YWZiNjgwZDM2ZDc1MTI1NmIwMjlmOWYyOTAuLjQ1OTMwMjlhODg1OTgxZDkzZTYxZmU0NWQyYmQ4
NDcyN2MwMGUwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjI0LDYgKzIyNCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2VuZENoYW5nZUV2ZW50QWZ0ZXJDaGVj
a2VkQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdl
RXZlbnQpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9u
KCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCk7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA3OTcxM2ExODFhYjE0N2ViZGYz
YTJiYTRkMTg2YmMwMDUyNmI0NjIwLi45YTNkZWQ1Nzk4MmU1MjgwMjllZDUzOWJlZDQ1OWY3YzY3
NzVmNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBA
IC03Myw2ICs3MywxMiBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6Y2FuU2V0U3VnZ2VzdGVk
VmFsdWUoKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6
c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCBzZW5kQ2hhbmdlRXZl
bnQpCit7CisgICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgc2VuZENoYW5n
ZUV2ZW50KTsKKyAgICBlbGVtZW50KCktPnVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eShmYWxz
ZSk7Cit9CisKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5
Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKCFlbGVtZW50KCktPmZvY3VzZWQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4IGEyNTUzZGZhNzRlYmVl
ZGNiNmFhMjE4ZjIwNGQwNDE5MGFlZTU1NjYuLmNkYTcxYmI5ZWJhMjg3ZGMyY2JiODY0ZjBmNmYx
MGFiMTg4YzY3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaApA
QCAtNzEsNiArNzEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdWJtaXRJ
bXBsaWNpdGx5KEV2ZW50Kik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpOwogICAgIHZpcnR1YWwgU3RyaW5n
IHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJl
c3BlY3RMaXN0QXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBIVE1MRWxlbWVudCogcGxhY2Vob2xk
ZXJFbGVtZW50KCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="102814"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>