<?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>99460</bug_id>
          
          <creation_ts>2012-10-16 05:44:15 -0700</creation_ts>
          <short_desc>Implement the Selector argument to RTCPeerConnection.getStats</short_desc>
          <delta_ts>2012-10-17 04:20:21 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Harald Alvestrand">hta</reporter>
          <assigned_to name="Harald Alvestrand">hta</assigned_to>
          <cc>abarth</cc>
    
    <cc>cabanier</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743088</commentid>
    <comment_count>0</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-16 05:44:15 -0700</bug_when>
    <thetext>The Selector argument to RTCPeerConnection.getStats is supposed to give a single track that one wants to get statistics on, so that one does not have to fetch all stats all the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743112</commentid>
    <comment_count>1</comment_count>
      <attachid>168937</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-16 06:38:22 -0700</bug_when>
    <thetext>Created attachment 168937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743118</commentid>
    <comment_count>2</comment_count>
      <attachid>168937</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-10-16 07:06:16 -0700</bug_when>
    <thetext>Comment on attachment 168937
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:47
&gt; +    , m_stream(selector?selector-&gt;streamDescriptor():0)

Space around operators

&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:66
&gt; +PassRefPtr&lt;MediaStreamDescriptor&gt; RTCStatsRequestImpl::stream()

Only return a PassRefPtr is ownership is transfered, otherwise use raw pointers: return m_stream.get()
http://www.webkit.org/coding/RefPtr.html

&gt; Source/WebCore/platform/mediastream/RTCStatsRequest.h:52
&gt; +    virtual PassRefPtr&lt;MediaStreamDescriptor&gt; stream() = 0;

See the comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743123</commentid>
    <comment_count>3</comment_count>
      <attachid>168942</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-16 07:26:10 -0700</bug_when>
    <thetext>Created attachment 168942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743146</commentid>
    <comment_count>4</comment_count>
      <attachid>168946</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-16 07:59:19 -0700</bug_when>
    <thetext>Created attachment 168946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743148</commentid>
    <comment_count>5</comment_count>
      <attachid>168937</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-16 07:59:49 -0700</bug_when>
    <thetext>Comment on attachment 168937
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:47
&gt;&gt; +    , m_stream(selector?selector-&gt;streamDescriptor():0)
&gt; 
&gt; Space around operators

Done.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:66
&gt;&gt; +PassRefPtr&lt;MediaStreamDescriptor&gt; RTCStatsRequestImpl::stream()
&gt; 
&gt; Only return a PassRefPtr is ownership is transfered, otherwise use raw pointers: return m_stream.get()
&gt; http://www.webkit.org/coding/RefPtr.html

Done.

&gt;&gt; Source/WebCore/platform/mediastream/RTCStatsRequest.h:52
&gt;&gt; +    virtual PassRefPtr&lt;MediaStreamDescriptor&gt; stream() = 0;
&gt; 
&gt; See the comment above.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743163</commentid>
    <comment_count>6</comment_count>
      <attachid>168946</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-10-16 08:24:45 -0700</bug_when>
    <thetext>Comment on attachment 168946
Patch

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

&gt; Source/WebCore/platform/chromium/support/WebRTCStatsRequest.cpp:68
&gt;  

Nit: extra empty line

&gt; Source/WebCore/platform/chromium/support/WebRTCStatsRequest.cpp:84
&gt; +

Nit: extra empty line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743196</commentid>
    <comment_count>7</comment_count>
      <attachid>168946</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-16 09:17:20 -0700</bug_when>
    <thetext>Comment on attachment 168946
Patch

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

This patch looks good.  Tommy and I have some very minor style issues that we should clear up before landing.

&gt; Source/Platform/chromium/public/WebRTCStatsRequest.h:89
&gt; +    WEBKIT_EXPORT bool hasSelector() const;
&gt; +
&gt; +    WEBKIT_EXPORT const WebMediaStreamDescriptor stream() const;
&gt; +
&gt; +    WEBKIT_EXPORT const WebMediaStreamComponent component() const;

I might have added some comments explaining the relationship between these functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743227</commentid>
    <comment_count>8</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-10-16 09:54:37 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744066</commentid>
    <comment_count>9</comment_count>
      <attachid>169140</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-17 02:41:51 -0700</bug_when>
    <thetext>Created attachment 169140
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744085</commentid>
    <comment_count>10</comment_count>
      <attachid>168946</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-10-17 03:02:21 -0700</bug_when>
    <thetext>Comment on attachment 168946
Patch

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

&gt;&gt; Source/Platform/chromium/public/WebRTCStatsRequest.h:89
&gt;&gt; +    WEBKIT_EXPORT const WebMediaStreamComponent component() const;
&gt; 
&gt; I might have added some comments explaining the relationship between these functions.

Done.

&gt; Source/WebCore/platform/chromium/support/WebRTCStatsRequest.cpp:68
&gt;  

Fixed.

&gt;&gt; Source/WebCore/platform/chromium/support/WebRTCStatsRequest.cpp:84
&gt;&gt; +
&gt; 
&gt; Nit: extra empty line

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744096</commentid>
    <comment_count>11</comment_count>
      <attachid>169140</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 03:11:22 -0700</bug_when>
    <thetext>Comment on attachment 169140
Patch for landing

Rejecting attachment 169140 from commit-queue.

hta@google.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744132</commentid>
    <comment_count>12</comment_count>
      <attachid>169140</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 04:15:11 -0700</bug_when>
    <thetext>Comment on attachment 169140
Patch for landing

Clearing flags on attachment: 169140

Committed r131584: &lt;http://trac.webkit.org/changeset/131584&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168937</attachid>
            <date>2012-10-16 06:38:22 -0700</date>
            <delta_ts>2012-10-16 07:59:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99460-20121016153710.patch</filename>
            <type>text/plain</type>
            <size>14105</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaAppbmRleCBlNjdiZDFmODc3OWZjYzBj
ODI4NjY3MGE4ZDIzZTNlZjI0MDcyNzA4Li44ZjlhN2NlNjA5ZmVmMjZlYTdkNDNhYmE0MDkxZTM5
NDM2N2I4MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlJUQ1N0YXRzUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgUlRDU3RhdHNSZXF1
ZXN0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTWVkaWFTdHJlYW1Db21wb25l
bnQ7CitjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENTdGF0c1Jl
c3BvbnNlOwogCiAvLyBUaGUgV2ViUlRDU3RhdHNSZXF1ZXN0IGNsYXNzIHJlcHJlc2VudHMgYSBK
YXZhU2NyaXB0IGNhbGwgb24KQEAgLTgwLDYgKzgyLDEyIEBAIHB1YmxpYzoKIAogICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCByZXNldCgpOwogCisgICAgV0VCS0lUX0VYUE9SVCBib29sIGhhc1NlbGVj
dG9yKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvciBzdHJlYW0oKSBjb25zdDsKKworICAgIFdFQktJVF9FWFBPUlQgY29uc3QgV2ViTWVk
aWFTdHJlYW1Db21wb25lbnQgY29tcG9uZW50KCkgY29uc3Q7CisKICAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0c1Jlc3BvbnNlJikgY29uc3Q7
CiAKICAgICBXRUJLSVRfRVhQT1JUIFdlYlJUQ1N0YXRzUmVzcG9uc2UgY3JlYXRlUmVzcG9uc2Uo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDIxMGEyZjM2ZTc4NzY5ZGI0MGU1NTBjODY2OWMy
N2U5N2M5Y2U2ZDkuLjI3YTYwN2U3ZmZjMThkYmI0NjUwOWFmM2NiYjllZmJhN2FiMDIxOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcApAQCAtMTMwLDYgKzEzMCwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6
OnNvdXJjZUNoYW5nZWRTdGF0ZSgpCiAgICAgfQogfQogCitNZWRpYVN0cmVhbURlc2NyaXB0b3Iq
IE1lZGlhU3RyZWFtVHJhY2s6OnN0cmVhbURlc2NyaXB0b3IoKQoreworICAgIHJldHVybiBtX3N0
cmVhbURlc2NyaXB0b3IuZ2V0KCk7Cit9CisKIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBNZWRpYVN0
cmVhbVRyYWNrOjpjb21wb25lbnQoKQogewogICAgIHJldHVybiBtX2NvbXBvbmVudC5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmgKaW5kZXggYTQ3MWM1MzVjZTMzYjdhYzNhZjlmZTI2YWFiNmQ1NjQzNDFhN2JkZC4u
MmZlMDdkMTQxYjAzZTNjOGEzZThmZmM0Y2M2ZGYzNzA1YjNmMDFjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAg
LTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIodW5tdXRlKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVkKTsK
IAorICAgIE1lZGlhU3RyZWFtRGVzY3JpcHRvciogc3RyZWFtRGVzY3JpcHRvcigpOwogICAgIE1l
ZGlhU3RyZWFtQ29tcG9uZW50KiBjb21wb25lbnQoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCmluZGV4IGI5ODExYWRkODAyMzQyZjhmOTMyZDI0MzQyMDIyYjg1NmY2NzA3
NDMuLjI0YzQ2MGRlNmZjZmI2NmIxNTgzZWFhMzMzOWUzOTBjOGUxNTBiYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCkBAIC00MDMsNyArNDAzLDcgQEAgTWVkaWFTdHJlYW1MaXN0KiBSVENQZWVyQ29ubmVj
dGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246Omdl
dFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKQogewotICAgIFJlZlB0cjxSVENTdGF0
c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3QgPSBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2spOworICAgIFJlZlB0cjxS
VENTdGF0c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3QgPSBSVENTdGF0c1JlcXVlc3RJbXBsOjpj
cmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIHNlbGVjdG9y
KTsKICAgICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0b3IgYXMgcGFydCBvZiB0aGUgc3Rh
dHNSZXF1ZXN0LgogICAgIG1fcGVlckhhbmRsZXItPmdldFN0YXRzKHN0YXRzUmVxdWVzdC5yZWxl
YXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5kZXggMDFlY2VhZDJmNGQ0NTdhNGIwZjVh
ZjZmOGMxMDliZWQwNTgwYmJhZC4uMjQ0N2IyOWRlYzM0OGE0YjdiMTdkNjU5ZGFiYjAzYzdkY2My
MzIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC0zNCwxNiArMzQsMTggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0YXRz
UmVxdWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorUGFzc1JlZlB0cjxSVENTdGF0c1Jl
cXVlc3RJbXBsPiBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaywgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikKIHsKLSAgICBSZWZQdHI8UlRDU3Rh
dHNSZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcXVlc3RJbXBs
KGNvbnRleHQsIGNhbGxiYWNrKSk7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHJl
cXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXF1ZXN0SW1wbChjb250ZXh0LCBjYWxsYmFj
aywgc2VsZWN0b3IpKTsKICAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1
cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRz
UmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxS
VENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKK1JUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRz
UmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxS
VENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBz
ZWxlY3RvcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9z
dWNjZXNzQ2FsbGJhY2soY2FsbGJhY2spCisgICAgLCBtX3N0cmVhbShzZWxlY3Rvcj9zZWxlY3Rv
ci0+c3RyZWFtRGVzY3JpcHRvcigpOjApCisgICAgLCBtX2NvbXBvbmVudChzZWxlY3Rvcj9zZWxl
Y3Rvci0+Y29tcG9uZW50KCk6MCkKIHsKIH0KIApAQCAtNTYsNiArNTgsMjEgQEAgUGFzc1JlZlB0
cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4gUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlUmVzcG9u
c2UoKQogICAgIHJldHVybiBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKTsKIH0KIAorYm9vbCBS
VENTdGF0c1JlcXVlc3RJbXBsOjpoYXNTZWxlY3RvcigpCit7CisgICAgcmV0dXJuIG1fc3RyZWFt
OworfQorCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gUlRDU3RhdHNSZXF1ZXN0
SW1wbDo6c3RyZWFtKCkKK3sKKyAgICByZXR1cm4gbV9zdHJlYW07Cit9CisKK1Bhc3NSZWZQdHI8
TWVkaWFTdHJlYW1Db21wb25lbnQ+IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNvbXBvbmVudCgpCit7
CisgICAgcmV0dXJuIG1fY29tcG9uZW50OworfQorCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6
OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4gcmVzcG9u
c2UpCiB7CiAgICAgaWYgKCFtX3N1Y2Nlc3NDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKaW5kZXgg
YmRhMTU1ZWFiZjI1ZWEwMDU3ZjdjM2U2MWE4MDFjMDFjMjdjMDc2ZC4uZjZkZjBmZGUwMmZiYmFj
ZDgzNTIxYjcyOTFmMzFhN2JiOGUyMTY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTQwLDIxICs0
MCwyNyBAQCBjbGFzcyBSVENTdGF0c0NhbGxiYWNrOwogCiBjbGFzcyBSVENTdGF0c1JlcXVlc3RJ
bXBsIDogcHVibGljIFJUQ1N0YXRzUmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4pOwogICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdEltcGwo
KTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4gY3JlYXRl
UmVzcG9uc2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVzcG9uc2VCYXNlPik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVzcG9uc2VCYXNlPiBjcmVhdGVSZXNwb25zZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBoYXNTZWxlY3RvcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbURlc2NyaXB0b3I+IHN0cmVhbSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbUNvbXBvbmVudD4gY29tcG9uZW50KCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNl
PikgT1ZFUlJJREU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpIE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworICAg
IFJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
UlRDU3RhdHNDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4pOwogCiAgICAg
dm9pZCBjbGVhcigpOwogCiAgICAgUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IG1fc3VjY2Vzc0Nh
bGxiYWNrOworICAgIFJlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1fc3RyZWFtOworICAg
IFJlZlB0cjxNZWRpYVN0cmVhbUNvbXBvbmVudD4gbV9jb21wb25lbnQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKaW5kZXggM2FjNGMy
ZjI4ZmMwOGY2ZGYwZGNlMDhlZGMxNWMyMjVmZjJhYzA0MS4uN2UyZTBjNjMxZjdkYjkzZThjZWU5
Njg1ZjgxZGYxZDBhNDI3ZDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcApAQCAt
MSwzICsxLDQgQEAKKwogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTMyLDYgKzMzLDggQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAKKyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaD4K
KyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8
cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0
c1Jlc3BvbnNlLmg+CiAKQEAgLTYzLDYgKzY2LDIzIEBAIFdlYlJUQ1N0YXRzUmVzcG9uc2UgV2Vi
UlRDU3RhdHNSZXF1ZXN0OjpjcmVhdGVSZXNwb25zZSgpIGNvbnN0CiAgICAgcmV0dXJuIFdlYlJU
Q1N0YXRzUmVzcG9uc2UobV9wcml2YXRlLT5jcmVhdGVSZXNwb25zZSgpKTsKIH0KIAorCitib29s
IFdlYlJUQ1N0YXRzUmVxdWVzdDo6aGFzU2VsZWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPmhhc1NlbGVjdG9yKCk7Cit9CisKK2NvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvciBXZWJSVENTdGF0c1JlcXVlc3Q6OnN0cmVhbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvcihtX3ByaXZhdGUtPnN0cmVhbSgpLmdldCgpKTsKK30KKwor
Y29uc3QgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQgV2ViUlRDU3RhdHNSZXF1ZXN0Ojpjb21wb25l
bnQoKSBjb25zdAoreworICAgIHJldHVybiBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudChtX3ByaXZh
dGUtPmNvbXBvbmVudCgpLmdldCgpKTsKK30KKworCiB2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6
cmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0c1Jlc3BvbnNlJiByZXNwb25zZSkgY29u
c3QKIHsKICAgICBtX3ByaXZhdGUtPnJlcXVlc3RTdWNjZWVkZWQocmVzcG9uc2UpOwpAQCAtNzEs
NCArOTEsMyBAQCB2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZChjb25z
dCBXZWJSVENTdGF0c1Jlc3BvbnNlJiByZXNwb25zZSkgYwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCmluZGV4IDIyYzE5
Yjg3ZjdjNzVjYTI3MjliYmUxZmQ3ZjIxZmExYzE0N2M5NzEuLmY3N2Q5MGNjMTAxNmQ3Yzg1YTBi
MWI5YzVlODAxM2FjZDAxY2Q2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCkBAIC0zOSw2ICszOSw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7CitjbGFzcyBN
ZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBSVENTdGF0c1Jlc3BvbnNlQmFzZTsKIAogY2xh
c3MgUlRDU3RhdHNSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXF1ZXN0PiB7
CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3Qo
KSB7IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4gY3Jl
YXRlUmVzcG9uc2UoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGhhc1NlbGVjdG9yKCkgPSAwOwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVhbSgpID0g
MDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Db21wb25lbnQ+IGNvbXBvbmVu
dCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJU
Q1N0YXRzUmVzcG9uc2VCYXNlPikgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuY3BwCmluZGV4IDA5ZjVjNWQ1ZTEyNmM3ZTI1MDM1ZDg0ZmQxZjExNzdhYWE1
MmM0ODUuLjgwMTQ4Y2MyY2RkNTBkMGIzYzMzMWMwMjUzMjNmYzhjNGM3YmYwOGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAKICNpbmNsdWRl
ICJNb2NrQ29uc3RyYWludHMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50
cy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNvbXBvbmVudC5oPgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0Lmg+CkBAIC0yMTcsMTMgKzIxOSwyMiBAQCB2b2lkIE1vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVz
dCYgcmVxdWVzdAogewogICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UgPSByZXF1ZXN0
LmNyZWF0ZVJlc3BvbnNlKCk7CiAgICAgZG91YmxlIGN1cnJlbnREYXRlID0gV1RGOjpqc0N1cnJl
bnRUaW1lKCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3N0cmVhbUNvdW50OyArK2kpIHsK
KyAgICBpZiAocmVxdWVzdC5oYXNTZWxlY3RvcigpKSB7CisgICAgICAgIFdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvciBzdHJlYW0gPSByZXF1ZXN0LnN0cmVhbSgpOworICAgICAgICBXZWJNZWRpYVN0
cmVhbUNvbXBvbmVudCBjb21wb25lbnQgPSByZXF1ZXN0LmNvbXBvbmVudCgpOworICAgICAgICAv
LyBGSVhNRTogVGhlcmUgaXMgbm8gY2hlY2sgdGhhdCB0aGUgZmV0Y2hlZCB2YWx1ZXMgYXJlIHZh
bGlkLgogICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsK
ICAgICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERh
dGUpOwotICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0
eXBlIiwgImF1ZGlvIik7Ci0gICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0
KCk7Ci0gICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJl
bnREYXRlKTsKICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVl
LCAidHlwZSIsICJ2aWRlbyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbV9zdHJlYW1Db3VudDsgKytpKSB7CisgICAgICAgICAgICBzaXplX3QgcmVwb3J0SW5k
ZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1l
bnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKKyAgICAgICAgICAgIHJlc3BvbnNl
LmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAiYXVkaW8iKTsKKyAgICAg
ICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7CisgICAgICAgICAgICBy
ZXNwb25zZS5hZGRFbGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7CisgICAg
ICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwg
InZpZGVvIik7CisgICAgICAgIH0KICAgICB9CiAgICAgcG9zdFRhc2sobmV3IFJUQ1N0YXRzUmVx
dWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCwgcmVzcG9uc2UpKTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNT
ZWxlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhY2Zj
MjJkM2I3ZDVmMmVjN2UwNGZkZmRjZDQ4NzdiZDUzMWIzZWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0
b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoZSBSVENQZWVyQ29ubmVj
dGlvbiBzdGF0cyBzZWxlY3RvciBhcmd1bWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCkgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIGdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86
dHJ1ZX0sIGdvdFN0cmVhbSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIEdvdCBhIHN0
cmVhbS4KK1BBU1MgcGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyMiwgcGMubG9jYWxTdHJlYW1zWzBd
LnZpZGVvVHJhY2tzWzBdKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc3RhdHNIYW5k
bGVyMiB3YXMgY2FsbGVkCitQQVNTIHJlc3VsdC5sZW5ndGggaXMgPj0gMQorUEFTUyB0aW1lc3Rh
bXAgaXMgPj0gc3RhcnRUaW1lCitQQVNTIGxvY2FsLnN0YXQoInR5cGUiKSBpcyAidmlkZW8iCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0
c1NlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTk4NjRhOTEzYmYwODkwMDE0
NzdlZjRiNTc0Mzg5ZWM2ZTA4YTczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwKQEAgLTAs
MCArMSw1OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBzdGF0cyBzZWxlY3RvciBhcmd1bWVudC4iKTsK
KwordmFyIHBjID0gbnVsbDsKK3ZhciByZXN1bHQ7Cit2YXIgdGltZXN0YW1wOwordmFyIGxvY2Fs
OworCitmdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spIHsKKyAgICB0
cnkgeworICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNh
bGxiYWNrLCBlcnJvcik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCd3
ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gZXJyb3IoKSB7CisgICAgdGVzdEZhaWxl
ZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
CitmdW5jdGlvbiBnb3RTdHJlYW0ocykgeworICAgIHRlc3RQYXNzZWQoJ0dvdCBhIHN0cmVhbS4n
KTsKKyAgICBzdHJlYW0gPSBzOworCisgICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7CisgICAgc2hv
dWxkTm90VGhyb3coJ3BjLmdldFN0YXRzKHN0YXRzSGFuZGxlcjIsIHBjLmxvY2FsU3RyZWFtc1sw
XS52aWRlb1RyYWNrc1swXSknKTsKK30KKworZnVuY3Rpb24gc3RhdHNIYW5kbGVyMihzdGF0dXMp
Cit7CisgICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyMiB3YXMgY2FsbGVkIik7CisgICAgcmVz
dWx0ID0gc3RhdHVzLnJlc3VsdCgpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdy
ZXN1bHQubGVuZ3RoJywgJzEnKTsKKyAgICBsb2NhbCA9IHJlc3VsdFswXS5sb2NhbDsKKyAgICB0
aW1lc3RhbXAgPSBsb2NhbC50aW1lc3RhbXA7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1
YWwoJ3RpbWVzdGFtcCcsICdzdGFydFRpbWUnKTsKKyAgICBzaG91bGRCZSgnbG9jYWwuc3RhdCgi
dHlwZSIpJywgJyJ2aWRlbyInKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIHN0YXJ0
VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdl
YmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpJyk7CitzaG91bGROb3RUaHJvdygnZ2V0VXNlck1l
ZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtKScpOworCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168942</attachid>
            <date>2012-10-16 07:26:10 -0700</date>
            <delta_ts>2012-10-16 07:59:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99460-20121016162458.patch</filename>
            <type>text/plain</type>
            <size>18245</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA5NGNkNjAwOTVjMTYy
OTRlMmNkMjA2YjBhZjBiNjMzMzU1MDJlMjlhLi43Mzk2ODhkZDA4ZTkzNGFmZDI4ZjRlZjhiODk5
ZDRlYTk0YWUyZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
dGhlIFNlbGVjdG9yIGFyZ3VtZW50IHRvIFJUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTQ2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YlJUQ1N0YXRzUmVxdWVzdCk6CisKIDIwMTItMTAtMTMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBXZWJBdWRpb0J1cyBuZWVkcyBzdXBwb3J0IGZvciByZXNp
emluZyBidXMgdG8gYSBzbWFsbGVyIHNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MTI3YzM1Yjg1ODFhOWEx
YWRmYWE4ZGY5NTVhMThkNzVhZGRjZDNhLi44M2M0MzY5YjMzMWI0NGIxNGZkOTIyMmMzMDM2Mzgw
N2Q4NjVmNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTItMTAtMTYgIEhhcmFs
ZCBBbHZlc3RyYW5kICA8aHRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBT
ZWxlY3RvciBhcmd1bWVudCB0byBSVENQZWVyQ29ubmVjdGlvbi5nZXRTdGF0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2hhbmdlIGFkZHMgdHdv
IG5ldyBwYXJhbWV0ZXJzIHRvIHRoZSBSVENTdGF0c1JlcXVlc3Qgb2JqZWN0OgorICAgICAgICBz
dHJlYW0gYW5kIGNvbXBvbmVudC4gVG9nZXRoZXIgdGhlc2UgYXJlIGVub3VnaCB0byBpZGVudGlm
eSBhCisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2suCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwKKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzdHJlYW1EZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6aGFzU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpzdHJlYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y29tcG9uZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaDoKKyAgICAgICAgKFJUQ1N0
YXRzUmVxdWVzdEltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU3RhdHNSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJUQ1N0YXRzUmVxdWVzdDo6aGFzU2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
VENTdGF0c1JlcXVlc3Q6OnN0cmVhbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVx
dWVzdDo6Y29tcG9uZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0
KToKKwogMjAxMi0xMC0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIHJlbW92ZSBoYW5kIG1hZGUgb2JqZWN0IGJ1
aWxkZXJzIHdpdGggYXV0b21hdGljIGJ1aWxkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaAppbmRleCBlNjdiZDFmODc3OWZj
YzBjODI4NjY3MGE4ZDIzZTNlZjI0MDcyNzA4Li44ZjlhN2NlNjA5ZmVmMjZlYTdkNDNhYmE0MDkx
ZTM5NDM2N2I4MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlJUQ1N0YXRzUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgUlRDU3RhdHNS
ZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQ7CitjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENTdGF0
c1Jlc3BvbnNlOwogCiAvLyBUaGUgV2ViUlRDU3RhdHNSZXF1ZXN0IGNsYXNzIHJlcHJlc2VudHMg
YSBKYXZhU2NyaXB0IGNhbGwgb24KQEAgLTgwLDYgKzgyLDEyIEBAIHB1YmxpYzoKIAogICAgIFdF
QktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCisgICAgV0VCS0lUX0VYUE9SVCBib29sIGhhc1Nl
bGVjdG9yKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIGNvbnN0IFdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvciBzdHJlYW0oKSBjb25zdDsKKworICAgIFdFQktJVF9FWFBPUlQgY29uc3QgV2Vi
TWVkaWFTdHJlYW1Db21wb25lbnQgY29tcG9uZW50KCkgY29uc3Q7CisKICAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0c1Jlc3BvbnNlJikgY29u
c3Q7CiAKICAgICBXRUJLSVRfRVhQT1JUIFdlYlJUQ1N0YXRzUmVzcG9uc2UgY3JlYXRlUmVzcG9u
c2UoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDIxMGEyZjM2ZTc4NzY5ZGI0MGU1NTBjODY2
OWMyN2U5N2M5Y2U2ZDkuLjI3YTYwN2U3ZmZjMThkYmI0NjUwOWFmM2NiYjllZmJhN2FiMDIxOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcApAQCAtMTMwLDYgKzEzMCwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJh
Y2s6OnNvdXJjZUNoYW5nZWRTdGF0ZSgpCiAgICAgfQogfQogCitNZWRpYVN0cmVhbURlc2NyaXB0
b3IqIE1lZGlhU3RyZWFtVHJhY2s6OnN0cmVhbURlc2NyaXB0b3IoKQoreworICAgIHJldHVybiBt
X3N0cmVhbURlc2NyaXB0b3IuZ2V0KCk7Cit9CisKIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBNZWRp
YVN0cmVhbVRyYWNrOjpjb21wb25lbnQoKQogewogICAgIHJldHVybiBtX2NvbXBvbmVudC5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmgKaW5kZXggYTQ3MWM1MzVjZTMzYjdhYzNhZjlmZTI2YWFiNmQ1NjQzNDFhN2Jk
ZC4uMmZlMDdkMTQxYjAzZTNjOGEzZThmZmM0Y2M2ZGYzNzA1YjNmMDFjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgK
QEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIodW5tdXRlKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVk
KTsKIAorICAgIE1lZGlhU3RyZWFtRGVzY3JpcHRvciogc3RyZWFtRGVzY3JpcHRvcigpOwogICAg
IE1lZGlhU3RyZWFtQ29tcG9uZW50KiBjb21wb25lbnQoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IGI5ODExYWRkODAyMzQyZjhmOTMyZDI0MzQyMDIyYjg1NmY2
NzA3NDMuLjI0YzQ2MGRlNmZjZmI2NmIxNTgzZWFhMzMzOWUzOTBjOGUxNTBiYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwCkBAIC00MDMsNyArNDAzLDcgQEAgTWVkaWFTdHJlYW1MaXN0KiBSVENQZWVyQ29u
bmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OmdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKQogewotICAgIFJlZlB0cjxSVENT
dGF0c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3QgPSBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVh
dGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2spOworICAgIFJlZlB0
cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3QgPSBSVENTdGF0c1JlcXVlc3RJbXBs
OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIHNlbGVj
dG9yKTsKICAgICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0b3IgYXMgcGFydCBvZiB0aGUg
c3RhdHNSZXF1ZXN0LgogICAgIG1fcGVlckhhbmRsZXItPmdldFN0YXRzKHN0YXRzUmVxdWVzdC5y
ZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5kZXggMDFlY2VhZDJmNGQ0NTdhNGIw
ZjVhZjZmOGMxMDliZWQwNTgwYmJhZC4uNTQ2MzAyYjVhNjk4YzMzOTA1NzdmNmM2YmE4OTBiYzlh
ZGI2N2U4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC0zNCwxNiArMzQsMTggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0
YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorUGFzc1JlZlB0cjxSVENTdGF0
c1JlcXVlc3RJbXBsPiBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaywg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikKIHsKLSAgICBSZWZQdHI8UlRD
U3RhdHNSZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcXVlc3RJ
bXBsKGNvbnRleHQsIGNhbGxiYWNrKSk7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+
IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXF1ZXN0SW1wbChjb250ZXh0LCBjYWxs
YmFjaywgc2VsZWN0b3IpKTsKICAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0
YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKK1JUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0
YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiBzZWxlY3RvcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwg
bV9zdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2spCisgICAgLCBtX3N0cmVhbShzZWxlY3Rvcj9zZWxl
Y3Rvci0+c3RyZWFtRGVzY3JpcHRvcigpOjApCisgICAgLCBtX2NvbXBvbmVudChzZWxlY3Rvcj9z
ZWxlY3Rvci0+Y29tcG9uZW50KCk6MCkKIHsKIH0KIApAQCAtNTYsNiArNTgsMjEgQEAgUGFzc1Jl
ZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4gUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlUmVz
cG9uc2UoKQogICAgIHJldHVybiBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKTsKIH0KIAorYm9v
bCBSVENTdGF0c1JlcXVlc3RJbXBsOjpoYXNTZWxlY3RvcigpCit7CisgICAgcmV0dXJuIG1fc3Ry
ZWFtOworfQorCitNZWRpYVN0cmVhbURlc2NyaXB0b3IqIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnN0
cmVhbSgpCit7CisgICAgcmV0dXJuIG1fc3RyZWFtLmdldCgpOworfQorCitNZWRpYVN0cmVhbUNv
bXBvbmVudCogUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y29tcG9uZW50KCkKK3sKKyAgICByZXR1cm4g
bV9jb21wb25lbnQuZ2V0KCk7Cit9CisKIHZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6cmVxdWVz
dFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiByZXNwb25zZSkKIHsK
ICAgICBpZiAoIW1fc3VjY2Vzc0NhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaAppbmRleCBiZGExNTVl
YWJmMjVlYTAwNTdmN2MzZTYxYTgwMWMwMWMyN2MwNzZkLi44NzYwNjNjMzE0ZTNlMGY2MTE4NzAz
NTA2NjE2NTQ1NjhmMGQ5OGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaApAQCAtNDAsMjEgKzQwLDI3IEBA
IGNsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CiAKIGNsYXNzIFJUQ1N0YXRzUmVxdWVzdEltcGwgOiBw
dWJsaWMgUlRDU3RhdHNSZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPik7CiAgICAgdmlydHVhbCB+UlRDU3RhdHNSZXF1ZXN0SW1wbCgpOwogCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiBjcmVhdGVSZXNwb25z
ZSgpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU3Rh
dHNSZXNwb25zZUJhc2U+KTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25z
ZUJhc2U+IGNyZWF0ZVJlc3BvbnNlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc1Nl
bGVjdG9yKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBNZWRpYVN0cmVhbURlc2NyaXB0b3IqIHN0
cmVhbSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1Db21wb25lbnQqIGNvbXBv
bmVudCgpIE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFz
c1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4pIE9WRVJSSURFOwogCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKIAogcHJpdmF0ZToK
LSAgICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsKKyAgICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+LCBQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtVHJhY2s+KTsKIAogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIFJlZlB0cjxS
VENTdGF0c0NhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKKyAgICBSZWZQdHI8TWVkaWFTdHJl
YW1EZXNjcmlwdG9yPiBtX3N0cmVhbTsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1Db21wb25lbnQ+
IG1fY29tcG9uZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENT
dGF0c1JlcXVlc3QuY3BwCmluZGV4IDNhYzRjMmYyOGZjMDhmNmRmMGRjZTA4ZWRjMTVjMjI1ZmYy
YWMwNDEuLjRiNzgzZTcyYjJlNTk5YjU2ZWM0MmYwNmU2ZjhjMjJjNDNjMThjODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKQEAgLTEsMyArMSw0IEBACisKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0zMiw2
ICszMyw4IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSA8cHVibGlj
L1dlYk1lZGlhU3RyZWFtQ29tcG9uZW50Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXNwb25zZS5oPgogCkBAIC02Myw2ICs2Niwy
MyBAQCBXZWJSVENTdGF0c1Jlc3BvbnNlIFdlYlJUQ1N0YXRzUmVxdWVzdDo6Y3JlYXRlUmVzcG9u
c2UoKSBjb25zdAogICAgIHJldHVybiBXZWJSVENTdGF0c1Jlc3BvbnNlKG1fcHJpdmF0ZS0+Y3Jl
YXRlUmVzcG9uc2UoKSk7CiB9CiAKKworYm9vbCBXZWJSVENTdGF0c1JlcXVlc3Q6Omhhc1NlbGVj
dG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5oYXNTZWxlY3RvcigpOworfQor
Citjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IgV2ViUlRDU3RhdHNSZXF1ZXN0OjpzdHJl
YW0oKSBjb25zdAoreworICAgIHJldHVybiBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IobV9wcml2
YXRlLT5zdHJlYW0oKSk7Cit9CisKK2NvbnN0IFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50IFdlYlJU
Q1N0YXRzUmVxdWVzdDo6Y29tcG9uZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViTWVkaWFT
dHJlYW1Db21wb25lbnQobV9wcml2YXRlLT5jb21wb25lbnQoKSk7Cit9CisKKwogdm9pZCBXZWJS
VENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25z
ZSYgcmVzcG9uc2UpIGNvbnN0CiB7CiAgICAgbV9wcml2YXRlLT5yZXF1ZXN0U3VjY2VlZGVkKHJl
c3BvbnNlKTsKQEAgLTcxLDQgKzkxLDMgQEAgdm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVl
c3RTdWNjZWVkZWQoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgcmVzcG9uc2UpIGMKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVl
c3QuaAppbmRleCAyMmMxOWI4N2Y3Yzc1Y2EyNzI5YmJlMWZkN2YyMWZhMWMxNDdjOTcxLi42Yjkw
OTY4Mjk3M2E4NmJlZDg1ODFjMDliNDZlMWM3NjRhZDQzNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaApAQCAtMzks
NiArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1lZGlhU3RyZWFtQ29t
cG9uZW50OworY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgUlRDU3RhdHNSZXNw
b25zZUJhc2U7CiAKIGNsYXNzIFJUQ1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJU
Q1N0YXRzUmVxdWVzdD4gewpAQCAtNDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
UlRDU3RhdHNSZXF1ZXN0KCkgeyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU3RhdHNS
ZXNwb25zZUJhc2U+IGNyZWF0ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoYXNT
ZWxlY3RvcigpID0gMDsKKyAgICB2aXJ0dWFsIE1lZGlhU3RyZWFtRGVzY3JpcHRvciogc3RyZWFt
KCkgPSAwOworICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1Db21wb25lbnQqIGNvbXBvbmVudCgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVzcG9uc2VCYXNlPikgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzU0ZmQ4MWQ0ZmI4YmNlMDBjMzY0YTlkYzgz
OTA0ODQxOWFjNWJiNi4uNjFjZTdiYzg3NzIzYWExODdlZjVhMGExODZiNjI0ZmMyM2E5N2VmZCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTEwLTE2ICBIYXJhbGQgQWx2ZXN0cmFuZCAgPGh0YUBnb29nbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCB0aGUgU2VsZWN0b3IgYXJndW1lbnQgdG8gUlRDUGVlckNv
bm5lY3Rpb24uZ2V0U3RhdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk5NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIgd2lsbCByZXR1cm4g
b25lIG9iamVjdCBvbmx5CisgICAgICAgIHdoZW4gaXQgZ2V0cyBhIHNlbGVjdG9yLCBhbmQgYW4g
ZXZlbiBudW1iZXIgd2hlbiB0aGVyZSBpcyBubyBzZWxlY3Rvci4KKyAgICAgICAgVGhpcyBhbGxv
d3MgdG8gdmVyaWZ5IHRoYXQgdGhlIGFyZ3VtZW50IGlzIHBhc3NlZCwgYnV0IG5vdCBpdHMgdmFs
dWUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI6OmdldFN0YXRzKToKKwogMjAxMi0xMC0xNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWxsb3cgbm90aWZpY2F0aW9uIG9yaWdpbiBwZXJtaXNzaW9uIHJlcXVl
c3Qgd2hlbiBubyBqcyBjYWxsYmFjayBpcyBwcm92aWRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmNwcAppbmRleCAwOWY1YzVkNWUxMjZjN2UyNTAzNWQ4NGZkMWYxMTc3YWFhNTJjNDg1
Li44MDE0OGNjMmNkZDUwZDBiM2MzMzFjMDI1MzIzZmM4YzRjN2JmMDhhIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtMzUsNiArMzUsOCBAQAogCiAjaW5jbHVkZSAiTW9j
a0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhQ29uc3RyYWludHMuaD4K
KyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaD4KKyNpbmNsdWRlIDxw
dWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdC5oPgpAQCAtMjE3LDEzICsyMTksMjIgQEAgdm9pZCBNb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyhjb25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIHJl
cXVlc3QKIHsKICAgICBXZWJSVENTdGF0c1Jlc3BvbnNlIHJlc3BvbnNlID0gcmVxdWVzdC5jcmVh
dGVSZXNwb25zZSgpOwogICAgIGRvdWJsZSBjdXJyZW50RGF0ZSA9IFdURjo6anNDdXJyZW50VGlt
ZSgpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9zdHJlYW1Db3VudDsgKytpKSB7CisgICAg
aWYgKHJlcXVlc3QuaGFzU2VsZWN0b3IoKSkgeworICAgICAgICBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3Igc3RyZWFtID0gcmVxdWVzdC5zdHJlYW0oKTsKKyAgICAgICAgV2ViTWVkaWFTdHJlYW1D
b21wb25lbnQgY29tcG9uZW50ID0gcmVxdWVzdC5jb21wb25lbnQoKTsKKyAgICAgICAgLy8gRklY
TUU6IFRoZXJlIGlzIG5vIGNoZWNrIHRoYXQgdGhlIGZldGNoZWQgdmFsdWVzIGFyZSB2YWxpZC4K
ICAgICAgICAgc2l6ZV90IHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7CiAgICAg
ICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsK
LSAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVlLCAidHlwZSIs
ICJhdWRpbyIpOwotICAgICAgICByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwot
ICAgICAgICByZXNwb25zZS5hZGRFbGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0
ZSk7CiAgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5
cGUiLCAidmlkZW8iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IG1fc3RyZWFtQ291bnQ7ICsraSkgeworICAgICAgICAgICAgc2l6ZV90IHJlcG9ydEluZGV4ID0g
cmVzcG9uc2UuYWRkUmVwb3J0KCk7CisgICAgICAgICAgICByZXNwb25zZS5hZGRFbGVtZW50KHJl
cG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7CisgICAgICAgICAgICByZXNwb25zZS5hZGRT
dGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwgImF1ZGlvIik7CisgICAgICAgICAg
ICByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOworICAgICAgICAgICAgcmVzcG9u
c2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUpOworICAgICAgICAg
ICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVlLCAidHlwZSIsICJ2aWRl
byIpOworICAgICAgICB9CiAgICAgfQogICAgIHBvc3RUYXNrKG5ldyBSVENTdGF0c1JlcXVlc3RT
dWNjZWVkZWRUYXNrKHRoaXMsIHJlcXVlc3QsIHJlc3BvbnNlKSk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzQ5ODdl
ZGJhZTM2ODRhOWI5MTdiNzVhZjM0MWM1OGEzOTQ5MzA1MC4uMjM3Y2ViMjQ2MzljMGIzNmE5MWY2
YjQ1N2JkOTA5Yzc5ZDg0NzNhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEwLTE2ICBI
YXJhbGQgQWx2ZXN0cmFuZCAgPGh0YUBnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0
aGUgU2VsZWN0b3IgYXJndW1lbnQgdG8gUlRDUGVlckNvbm5lY3Rpb24uZ2V0U3RhdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NDYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0
b3IuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMTUgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcs
IFRlc3RFeHBlY3RhdGlvbnMgdXBkYXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2Vs
ZWN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhY2ZjMjJkM2I3ZDVmMmVjN2UwNGZkZmRj
ZDQ4NzdiZDUzMWIzZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3ItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTcgQEAKK1Rlc3RzIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBzdGF0cyBzZWxlY3RvciBh
cmd1bWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMgPSBuZXcg
d2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQ
QVNTIGdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbSkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIEdvdCBhIHN0cmVhbS4KK1BBU1MgcGMuZ2V0U3Rh
dHMoc3RhdHNIYW5kbGVyMiwgcGMubG9jYWxTdHJlYW1zWzBdLnZpZGVvVHJhY2tzWzBdKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc3RhdHNIYW5kbGVyMiB3YXMgY2FsbGVkCitQQVNT
IHJlc3VsdC5sZW5ndGggaXMgPj0gMQorUEFTUyB0aW1lc3RhbXAgaXMgPj0gc3RhcnRUaW1lCitQ
QVNTIGxvY2FsLnN0YXQoInR5cGUiKSBpcyAidmlkZW8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3Iu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41OTk4NjRhOTEzYmYwODkwMDE0NzdlZjRiNTc0Mzg5ZWM2ZTA4YTcz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBSVENQZWVyQ29u
bmVjdGlvbiBzdGF0cyBzZWxlY3RvciBhcmd1bWVudC4iKTsKKwordmFyIHBjID0gbnVsbDsKK3Zh
ciByZXN1bHQ7Cit2YXIgdGltZXN0YW1wOwordmFyIGxvY2FsOworCitmdW5jdGlvbiBnZXRVc2Vy
TWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spIHsKKyAgICB0cnkgeworICAgICAgICBuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrLCBlcnJvcik7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhy
ZXcgZXhjZXB0aW9uIDonICsgZSk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30K
KworZnVuY3Rpb24gZXJyb3IoKSB7CisgICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24g
ZmFpbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW0o
cykgeworICAgIHRlc3RQYXNzZWQoJ0dvdCBhIHN0cmVhbS4nKTsKKyAgICBzdHJlYW0gPSBzOwor
CisgICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7CisgICAgc2hvdWxkTm90VGhyb3coJ3BjLmdldFN0
YXRzKHN0YXRzSGFuZGxlcjIsIHBjLmxvY2FsU3RyZWFtc1swXS52aWRlb1RyYWNrc1swXSknKTsK
K30KKworZnVuY3Rpb24gc3RhdHNIYW5kbGVyMihzdGF0dXMpCit7CisgICAgdGVzdFBhc3NlZCgi
c3RhdHNIYW5kbGVyMiB3YXMgY2FsbGVkIik7CisgICAgcmVzdWx0ID0gc3RhdHVzLnJlc3VsdCgp
OworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdyZXN1bHQubGVuZ3RoJywgJzEnKTsK
KyAgICBsb2NhbCA9IHJlc3VsdFswXS5sb2NhbDsKKyAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1l
c3RhbXA7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFy
dFRpbWUnKTsKKyAgICBzaG91bGRCZSgnbG9jYWwuc3RhdCgidHlwZSIpJywgJyJ2aWRlbyInKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0
VGltZSgpOworc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9u
KG51bGwpJyk7CitzaG91bGROb3RUaHJvdygnZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRl
bzp0cnVlfSwgZ290U3RyZWFtKScpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3
aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168946</attachid>
            <date>2012-10-16 07:59:19 -0700</date>
            <delta_ts>2012-10-17 03:02:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99460-20121016165807.patch</filename>
            <type>text/plain</type>
            <size>18253</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA5NGNkNjAwOTVjMTYy
OTRlMmNkMjA2YjBhZjBiNjMzMzU1MDJlMjlhLi43Mzk2ODhkZDA4ZTkzNGFmZDI4ZjRlZjhiODk5
ZDRlYTk0YWUyZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
dGhlIFNlbGVjdG9yIGFyZ3VtZW50IHRvIFJUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTQ2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YlJUQ1N0YXRzUmVxdWVzdCk6CisKIDIwMTItMTAtMTMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBXZWJBdWRpb0J1cyBuZWVkcyBzdXBwb3J0IGZvciByZXNp
emluZyBidXMgdG8gYSBzbWFsbGVyIHNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MTI3YzM1Yjg1ODFhOWEx
YWRmYWE4ZGY5NTVhMThkNzVhZGRjZDNhLi44M2M0MzY5YjMzMWI0NGIxNGZkOTIyMmMzMDM2Mzgw
N2Q4NjVmNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTItMTAtMTYgIEhhcmFs
ZCBBbHZlc3RyYW5kICA8aHRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBT
ZWxlY3RvciBhcmd1bWVudCB0byBSVENQZWVyQ29ubmVjdGlvbi5nZXRTdGF0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2hhbmdlIGFkZHMgdHdv
IG5ldyBwYXJhbWV0ZXJzIHRvIHRoZSBSVENTdGF0c1JlcXVlc3Qgb2JqZWN0OgorICAgICAgICBz
dHJlYW0gYW5kIGNvbXBvbmVudC4gVG9nZXRoZXIgdGhlc2UgYXJlIGVub3VnaCB0byBpZGVudGlm
eSBhCisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2suCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwKKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzdHJlYW1EZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6aGFzU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpzdHJlYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y29tcG9uZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaDoKKyAgICAgICAgKFJUQ1N0
YXRzUmVxdWVzdEltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU3RhdHNSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJUQ1N0YXRzUmVxdWVzdDo6aGFzU2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
VENTdGF0c1JlcXVlc3Q6OnN0cmVhbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVx
dWVzdDo6Y29tcG9uZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0
KToKKwogMjAxMi0xMC0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIHJlbW92ZSBoYW5kIG1hZGUgb2JqZWN0IGJ1
aWxkZXJzIHdpdGggYXV0b21hdGljIGJ1aWxkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaAppbmRleCBlNjdiZDFmODc3OWZj
YzBjODI4NjY3MGE4ZDIzZTNlZjI0MDcyNzA4Li44ZjlhN2NlNjA5ZmVmMjZlYTdkNDNhYmE0MDkx
ZTM5NDM2N2I4MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlJUQ1N0YXRzUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgUlRDU3RhdHNS
ZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQ7CitjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENTdGF0
c1Jlc3BvbnNlOwogCiAvLyBUaGUgV2ViUlRDU3RhdHNSZXF1ZXN0IGNsYXNzIHJlcHJlc2VudHMg
YSBKYXZhU2NyaXB0IGNhbGwgb24KQEAgLTgwLDYgKzgyLDEyIEBAIHB1YmxpYzoKIAogICAgIFdF
QktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCisgICAgV0VCS0lUX0VYUE9SVCBib29sIGhhc1Nl
bGVjdG9yKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIGNvbnN0IFdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvciBzdHJlYW0oKSBjb25zdDsKKworICAgIFdFQktJVF9FWFBPUlQgY29uc3QgV2Vi
TWVkaWFTdHJlYW1Db21wb25lbnQgY29tcG9uZW50KCkgY29uc3Q7CisKICAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0c1Jlc3BvbnNlJikgY29u
c3Q7CiAKICAgICBXRUJLSVRfRVhQT1JUIFdlYlJUQ1N0YXRzUmVzcG9uc2UgY3JlYXRlUmVzcG9u
c2UoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDIxMGEyZjM2ZTc4NzY5ZGI0MGU1NTBjODY2
OWMyN2U5N2M5Y2U2ZDkuLjI3YTYwN2U3ZmZjMThkYmI0NjUwOWFmM2NiYjllZmJhN2FiMDIxOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcApAQCAtMTMwLDYgKzEzMCwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJh
Y2s6OnNvdXJjZUNoYW5nZWRTdGF0ZSgpCiAgICAgfQogfQogCitNZWRpYVN0cmVhbURlc2NyaXB0
b3IqIE1lZGlhU3RyZWFtVHJhY2s6OnN0cmVhbURlc2NyaXB0b3IoKQoreworICAgIHJldHVybiBt
X3N0cmVhbURlc2NyaXB0b3IuZ2V0KCk7Cit9CisKIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBNZWRp
YVN0cmVhbVRyYWNrOjpjb21wb25lbnQoKQogewogICAgIHJldHVybiBtX2NvbXBvbmVudC5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmgKaW5kZXggYTQ3MWM1MzVjZTMzYjdhYzNhZjlmZTI2YWFiNmQ1NjQzNDFhN2Jk
ZC4uMmZlMDdkMTQxYjAzZTNjOGEzZThmZmM0Y2M2ZGYzNzA1YjNmMDFjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgK
QEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIodW5tdXRlKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVk
KTsKIAorICAgIE1lZGlhU3RyZWFtRGVzY3JpcHRvciogc3RyZWFtRGVzY3JpcHRvcigpOwogICAg
IE1lZGlhU3RyZWFtQ29tcG9uZW50KiBjb21wb25lbnQoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IGI5ODExYWRkODAyMzQyZjhmOTMyZDI0MzQyMDIyYjg1NmY2
NzA3NDMuLjI0YzQ2MGRlNmZjZmI2NmIxNTgzZWFhMzMzOWUzOTBjOGUxNTBiYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwCkBAIC00MDMsNyArNDAzLDcgQEAgTWVkaWFTdHJlYW1MaXN0KiBSVENQZWVyQ29u
bmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OmdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKQogewotICAgIFJlZlB0cjxSVENT
dGF0c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3QgPSBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVh
dGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2spOworICAgIFJlZlB0
cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3QgPSBSVENTdGF0c1JlcXVlc3RJbXBs
OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIHNlbGVj
dG9yKTsKICAgICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0b3IgYXMgcGFydCBvZiB0aGUg
c3RhdHNSZXF1ZXN0LgogICAgIG1fcGVlckhhbmRsZXItPmdldFN0YXRzKHN0YXRzUmVxdWVzdC5y
ZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5kZXggMDFlY2VhZDJmNGQ0NTdhNGIw
ZjVhZjZmOGMxMDliZWQwNTgwYmJhZC4uYjQwMTZhMzY2YjNkODY1M2JlNTIwZmQ5YmQ1M2UyOGM3
NDZkYzhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC0zNCwxNiArMzQsMTggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0
YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorUGFzc1JlZlB0cjxSVENTdGF0
c1JlcXVlc3RJbXBsPiBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaywg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikKIHsKLSAgICBSZWZQdHI8UlRD
U3RhdHNSZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcXVlc3RJ
bXBsKGNvbnRleHQsIGNhbGxiYWNrKSk7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+
IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXF1ZXN0SW1wbChjb250ZXh0LCBjYWxs
YmFjaywgc2VsZWN0b3IpKTsKICAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0
YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKK1JUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0
YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiBzZWxlY3RvcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwg
bV9zdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2spCisgICAgLCBtX3N0cmVhbShzZWxlY3RvciA/IHNl
bGVjdG9yLT5zdHJlYW1EZXNjcmlwdG9yKCkgOiAwKQorICAgICwgbV9jb21wb25lbnQoc2VsZWN0
b3IgPyBzZWxlY3Rvci0+Y29tcG9uZW50KCkgOiAwKQogewogfQogCkBAIC01Niw2ICs1OCwyMSBA
QCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiBSVENTdGF0c1JlcXVlc3RJbXBsOjpj
cmVhdGVSZXNwb25zZSgpCiAgICAgcmV0dXJuIFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgpOwog
fQogCitib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6Omhhc1NlbGVjdG9yKCkKK3sKKyAgICByZXR1
cm4gbV9zdHJlYW07Cit9CisKK01lZGlhU3RyZWFtRGVzY3JpcHRvciogUlRDU3RhdHNSZXF1ZXN0
SW1wbDo6c3RyZWFtKCkKK3sKKyAgICByZXR1cm4gbV9zdHJlYW0uZ2V0KCk7Cit9CisKK01lZGlh
U3RyZWFtQ29tcG9uZW50KiBSVENTdGF0c1JlcXVlc3RJbXBsOjpjb21wb25lbnQoKQoreworICAg
IHJldHVybiBtX2NvbXBvbmVudC5nZXQoKTsKK30KKwogdm9pZCBSVENTdGF0c1JlcXVlc3RJbXBs
OjpyZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZUJhc2U+IHJlc3Bv
bnNlKQogewogICAgIGlmICghbV9zdWNjZXNzQ2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oCmluZGV4
IGJkYTE1NWVhYmYyNWVhMDA1N2Y3YzNlNjFhODAxYzAxYzI3YzA3NmQuLjg3NjA2M2MzMTRlM2Uw
ZjYxMTg3MDM1MDY2MTY1NDU2OGYwZDk4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oCkBAIC00MCwyMSAr
NDAsMjcgQEAgY2xhc3MgUlRDU3RhdHNDYWxsYmFjazsKIAogY2xhc3MgUlRDU3RhdHNSZXF1ZXN0
SW1wbCA6IHB1YmxpYyBSVENTdGF0c1JlcXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2s+KTsKICAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3RJbXBs
KCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZUJhc2U+IGNyZWF0
ZVJlc3BvbnNlKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0
cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4pOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTdGF0
c1Jlc3BvbnNlQmFzZT4gY3JlYXRlUmVzcG9uc2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaGFzU2VsZWN0b3IoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE1lZGlhU3RyZWFtRGVzY3Jp
cHRvciogc3RyZWFtKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBNZWRpYVN0cmVhbUNvbXBvbmVu
dCogY29tcG9uZW50KCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2Nl
ZWRlZChQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPikgT1ZFUlJJREU7CiAKICAgICAv
LyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwogCiBw
cml2YXRlOgotICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4sIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4pOwogCiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAg
UmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOworICAgIFJlZlB0cjxN
ZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1fc3RyZWFtOworICAgIFJlZlB0cjxNZWRpYVN0cmVhbUNv
bXBvbmVudD4gbV9jb21wb25lbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKaW5kZXggM2FjNGMyZjI4ZmMwOGY2ZGYwZGNlMDhlZGMx
NWMyMjVmZjJhYzA0MS4uNGI3ODNlNzJiMmU1OTliNTZlYzQyZjA2ZTZmOGMyMmM0M2MxOGM4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJS
VENTdGF0c1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcApAQCAtMSwzICsxLDQgQEAKKwogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
QEAgLTMyLDYgKzMzLDggQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRl
IDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVx
dWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1Jlc3BvbnNlLmg+CiAKQEAgLTYz
LDYgKzY2LDIzIEBAIFdlYlJUQ1N0YXRzUmVzcG9uc2UgV2ViUlRDU3RhdHNSZXF1ZXN0OjpjcmVh
dGVSZXNwb25zZSgpIGNvbnN0CiAgICAgcmV0dXJuIFdlYlJUQ1N0YXRzUmVzcG9uc2UobV9wcml2
YXRlLT5jcmVhdGVSZXNwb25zZSgpKTsKIH0KIAorCitib29sIFdlYlJUQ1N0YXRzUmVxdWVzdDo6
aGFzU2VsZWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc1NlbGVjdG9y
KCk7Cit9CisKK2NvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBXZWJSVENTdGF0c1JlcXVl
c3Q6OnN0cmVhbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
cihtX3ByaXZhdGUtPnN0cmVhbSgpKTsKK30KKworY29uc3QgV2ViTWVkaWFTdHJlYW1Db21wb25l
bnQgV2ViUlRDU3RhdHNSZXF1ZXN0Ojpjb21wb25lbnQoKSBjb25zdAoreworICAgIHJldHVybiBX
ZWJNZWRpYVN0cmVhbUNvbXBvbmVudChtX3ByaXZhdGUtPmNvbXBvbmVudCgpKTsKK30KKworCiB2
b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0
c1Jlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKIHsKICAgICBtX3ByaXZhdGUtPnJlcXVlc3RTdWNj
ZWVkZWQocmVzcG9uc2UpOwpAQCAtNzEsNCArOTEsMyBAQCB2b2lkIFdlYlJUQ1N0YXRzUmVxdWVz
dDo6cmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0c1Jlc3BvbnNlJiByZXNwb25zZSkg
YwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdC5oCmluZGV4IDIyYzE5Yjg3ZjdjNzVjYTI3MjliYmUxZmQ3ZjIxZmExYzE0N2M5
NzEuLjZiOTA5NjgyOTczYTg2YmVkODU4MWMwOWI0NmUxYzc2NGFkNDM2MTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5o
CkBAIC0zOSw2ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTWVkaWFT
dHJlYW1Db21wb25lbnQ7CitjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBSVENT
dGF0c1Jlc3BvbnNlQmFzZTsKIAogY2xhc3MgUlRDU3RhdHNSZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8UlRDU3RhdHNSZXF1ZXN0PiB7CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3QoKSB7IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxS
VENTdGF0c1Jlc3BvbnNlQmFzZT4gY3JlYXRlUmVzcG9uc2UoKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGhhc1NlbGVjdG9yKCkgPSAwOworICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KiBzdHJlYW0oKSA9IDA7CisgICAgdmlydHVhbCBNZWRpYVN0cmVhbUNvbXBvbmVudCogY29tcG9u
ZW50KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8
UlRDU3RhdHNSZXNwb25zZUJhc2U+KSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNTRmZDgxZDRmYjhiY2UwMGMz
NjRhOWRjODM5MDQ4NDE5YWM1YmI2Li42MWNlN2JjODc3MjNhYTE4N2VmNWEwYTE4NmI2MjRmYzIz
YTk3ZWZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMTYgIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRhQGdv
b2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBTZWxlY3RvciBhcmd1bWVudCB0byBS
VENQZWVyQ29ubmVjdGlvbi5nZXRTdGF0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB3aWxs
IHJldHVybiBvbmUgb2JqZWN0IG9ubHkKKyAgICAgICAgd2hlbiBpdCBnZXRzIGEgc2VsZWN0b3Is
IGFuZCBhbiBldmVuIG51bWJlciB3aGVuIHRoZXJlIGlzIG5vIHNlbGVjdG9yLgorICAgICAgICBU
aGlzIGFsbG93cyB0byB2ZXJpZnkgdGhhdCB0aGUgYXJndW1lbnQgaXMgcGFzc2VkLCBidXQgbm90
IGl0cyB2YWx1ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorCiAyMDEyLTEwLTE0ICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBub3RpZmljYXRpb24gb3JpZ2luIHBlcm1pc3Np
b24gcmVxdWVzdCB3aGVuIG5vIGpzIGNhbGxiYWNrIGlzIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IDA5ZjVjNWQ1ZTEyNmM3ZTI1MDM1ZDg0ZmQxZjExNzdh
YWE1MmM0ODUuLjgwMTQ4Y2MyY2RkNTBkMGIzYzMzMWMwMjUzMjNmYzhjNGM3YmYwOGEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAKICNpbmNs
dWRlICJNb2NrQ29uc3RyYWludHMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJh
aW50cy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNvbXBvbmVudC5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CkBAIC0yMTcsMTMgKzIxOSwyMiBAQCB2b2lkIE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVx
dWVzdCYgcmVxdWVzdAogewogICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UgPSByZXF1
ZXN0LmNyZWF0ZVJlc3BvbnNlKCk7CiAgICAgZG91YmxlIGN1cnJlbnREYXRlID0gV1RGOjpqc0N1
cnJlbnRUaW1lKCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3N0cmVhbUNvdW50OyArK2kp
IHsKKyAgICBpZiAocmVxdWVzdC5oYXNTZWxlY3RvcigpKSB7CisgICAgICAgIFdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciBzdHJlYW0gPSByZXF1ZXN0LnN0cmVhbSgpOworICAgICAgICBXZWJNZWRp
YVN0cmVhbUNvbXBvbmVudCBjb21wb25lbnQgPSByZXF1ZXN0LmNvbXBvbmVudCgpOworICAgICAg
ICAvLyBGSVhNRTogVGhlcmUgaXMgbm8gY2hlY2sgdGhhdCB0aGUgZmV0Y2hlZCB2YWx1ZXMgYXJl
IHZhbGlkLgogICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQo
KTsKICAgICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVu
dERhdGUpOwotICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUs
ICJ0eXBlIiwgImF1ZGlvIik7Ci0gICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVw
b3J0KCk7Ci0gICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1
cnJlbnREYXRlKTsKICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0
cnVlLCAidHlwZSIsICJ2aWRlbyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbV9zdHJlYW1Db3VudDsgKytpKSB7CisgICAgICAgICAgICBzaXplX3QgcmVwb3J0
SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVs
ZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAiYXVkaW8iKTsKKyAg
ICAgICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7CisgICAgICAgICAg
ICByZXNwb25zZS5hZGRFbGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7Cisg
ICAgICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBl
IiwgInZpZGVvIik7CisgICAgICAgIH0KICAgICB9CiAgICAgcG9zdFRhc2sobmV3IFJUQ1N0YXRz
UmVxdWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCwgcmVzcG9uc2UpKTsKIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3NDk4N2VkYmFlMzY4NGE5YjkxN2I3NWFmMzQxYzU4YTM5NDkzMDUwLi4yMzdjZWIyNDYzOWMw
YjM2YTkxZjZiNDU3YmQ5MDljNzlkODQ3M2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTAtMTYgIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IHRoZSBTZWxlY3RvciBhcmd1bWVudCB0byBSVENQZWVyQ29ubmVjdGlvbi5nZXRTdGF0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3Rh
dHNTZWxlY3Rvci5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0xNSAgU2hpbnlhIEthd2FuYWthICA8
c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdh
cmRlbmluZywgVGVzdEV4cGVjdGF0aW9ucyB1cGRhdGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
c3RhdHNTZWxlY3Rvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFjZmMyMmQzYjdkNWYyZWM3
ZTA0ZmRmZGNkNDg3N2JkNTMxYjNlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRzIHNl
bGVjdG9yIGFyZ3VtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBw
YyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKSBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1MgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3Ry
ZWFtKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgR290IGEgc3RyZWFtLgorUEFTUyBw
Yy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIyLCBwYy5sb2NhbFN0cmVhbXNbMF0udmlkZW9UcmFja3Nb
MF0pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdGF0c0hhbmRsZXIyIHdhcyBjYWxs
ZWQKK1BBU1MgcmVzdWx0Lmxlbmd0aCBpcyA+PSAxCitQQVNTIHRpbWVzdGFtcCBpcyA+PSBzdGFy
dFRpbWUKK1BBU1MgbG9jYWwuc3RhdCgidHlwZSIpIGlzICJ2aWRlbyIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNT
ZWxlY3Rvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5OTg2NGE5MTNiZjA4OTAwMTQ3N2VmNGI1NzQzODll
YzZlMDhhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbApAQCAtMCwwICsxLDU4IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJU
Q1BlZXJDb25uZWN0aW9uIHN0YXRzIHNlbGVjdG9yIGFyZ3VtZW50LiIpOworCit2YXIgcGMgPSBu
dWxsOwordmFyIHJlc3VsdDsKK3ZhciB0aW1lc3RhbXA7Cit2YXIgbG9jYWw7CisKK2Z1bmN0aW9u
IGdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgeworICAgIHRyeSB7CisgICAgICAg
IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2ssIGVycm9y
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJN
ZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfQorfQorCitmdW5jdGlvbiBlcnJvcigpIHsKKyAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2Vu
ZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGdv
dFN0cmVhbShzKSB7CisgICAgdGVzdFBhc3NlZCgnR290IGEgc3RyZWFtLicpOworICAgIHN0cmVh
bSA9IHM7CisKKyAgICBwYy5hZGRTdHJlYW0oc3RyZWFtKTsKKyAgICBzaG91bGROb3RUaHJvdygn
cGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyMiwgcGMubG9jYWxTdHJlYW1zWzBdLnZpZGVvVHJhY2tz
WzBdKScpOworfQorCitmdW5jdGlvbiBzdGF0c0hhbmRsZXIyKHN0YXR1cykKK3sKKyAgICB0ZXN0
UGFzc2VkKCJzdGF0c0hhbmRsZXIyIHdhcyBjYWxsZWQiKTsKKyAgICByZXN1bHQgPSBzdGF0dXMu
cmVzdWx0KCk7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3Jlc3VsdC5sZW5ndGgn
LCAnMScpOworICAgIGxvY2FsID0gcmVzdWx0WzBdLmxvY2FsOworICAgIHRpbWVzdGFtcCA9IGxv
Y2FsLnRpbWVzdGFtcDsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgndGltZXN0YW1w
JywgJ3N0YXJ0VGltZScpOworICAgIHNob3VsZEJlKCdsb2NhbC5zdGF0KCJ0eXBlIiknLCAnInZp
ZGVvIicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgc3RhcnRUaW1lID0gbmV3IERh
dGUoKS5nZXRUaW1lKCk7CitzaG91bGROb3RUaHJvdygncGMgPSBuZXcgd2Via2l0UlRDUGVlckNv
bm5lY3Rpb24obnVsbCknKTsKK3Nob3VsZE5vdFRocm93KCdnZXRVc2VyTWVkaWEoe2F1ZGlvOnRy
dWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="182067"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="182068"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169140</attachid>
            <date>2012-10-17 02:41:51 -0700</date>
            <delta_ts>2012-10-17 04:15:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99460-20121017114038.patch</filename>
            <type>text/plain</type>
            <size>18531</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA5NGNkNjAwOTVjMTYy
OTRlMmNkMjA2YjBhZjBiNjMzMzU1MDJlMjlhLi5kNjQ1NTRlYTRmZjYwMDJhZTUyOTJiYjkxNzM5
NjkxYjFkMDJkOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
dGhlIFNlbGVjdG9yIGFyZ3VtZW50IHRvIFJUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTQ2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMv
V2ViUlRDU3RhdHNSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUlRD
U3RhdHNSZXF1ZXN0KToKKwogMjAxMi0xMC0xMyAgQ2hyaXMgUm9nZXJzICA8Y3JvZ2Vyc0Bnb29n
bGUuY29tPgogCiAgICAgICAgIFdlYkF1ZGlvQnVzIG5lZWRzIHN1cHBvcnQgZm9yIHJlc2l6aW5n
IGJ1cyB0byBhIHNtYWxsZXIgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYxMjdjMzViODU4MWE5YTFhZGZh
YThkZjk1NWExOGQ3NWFkZGNkM2EuLjU0Mjk2NGJjNDhiMjU4ZDlkZjdiMDk4ZGIxYTM5NWVmNTli
YTIwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0xMC0xNiAgSGFyYWxkIEFs
dmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIFNlbGVj
dG9yIGFyZ3VtZW50IHRvIFJUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTQ2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhlIGNoYW5nZSBhZGRzIHR3byBuZXcgcGFy
YW1ldGVycyB0byB0aGUgUlRDU3RhdHNSZXF1ZXN0IG9iamVjdDoKKyAgICAgICAgc3RyZWFtIGFu
ZCBjb21wb25lbnQuIFRvZ2V0aGVyIHRoZXNlIGFyZSBlbm91Z2ggdG8gaWRlbnRpZnkgYQorICAg
ICAgICBNZWRpYVN0cmVhbVRyYWNrLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFjazo6c3RyZWFtRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jl
cXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0
YXRzUmVxdWVzdEltcGw6Omhhc1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RyZWFtKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNvbXBvbmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmg6CisgICAgICAgIChSVENTdGF0c1JlcXVl
c3RJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRz
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENT
dGF0c1JlcXVlc3Q6Omhhc1NlbGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNS
ZXF1ZXN0OjpzdHJlYW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OmNv
bXBvbmVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdCk6CisKIDIw
MTItMTAtMTIgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IE5NSSByZW1vdmUgaGFuZCBtYWRlIG9iamVjdCBidWlsZGVycyB3
aXRoIGF1dG9tYXRpYyBidWlsZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKaW5kZXggZTY3YmQxZjg3NzlmY2MwYzgyODY2
NzBhOGQyM2UzZWYyNDA3MjcwOC4uNGZmZmZkZjZkZDEwZDdiNGJmNTE5Y2NkYTdhY2E4ZDc0OTkz
MjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENT
dGF0c1JlcXVlc3QuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJU
Q1N0YXRzUmVxdWVzdC5oCkBAIC00MSw2ICs0MSw4IEBAIGNsYXNzIFJUQ1N0YXRzUmVxdWVzdDsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50Owor
Y2xhc3MgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgV2ViUlRDU3RhdHNSZXNwb25z
ZTsKIAogLy8gVGhlIFdlYlJUQ1N0YXRzUmVxdWVzdCBjbGFzcyByZXByZXNlbnRzIGEgSmF2YVNj
cmlwdCBjYWxsIG9uCkBAIC04MCw2ICs4MiwxNiBAQCBwdWJsaWM6CiAKICAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgcmVzZXQoKTsKIAorICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlm
IGEgc2VsZWN0b3IgYXJndW1lbnQgd2FzIGdpdmVuIHRvIGdldFN0YXRzLgorICAgIFdFQktJVF9F
WFBPUlQgYm9vbCBoYXNTZWxlY3RvcigpIGNvbnN0OworCisgICAgLy8gVGhlIHN0cmVhbSgpIGFu
ZCBjb21wb25lbnQoKSBhY2Nlc3NvcnMgZ2l2ZSB0aGUgdHdvIHBpZWNlcyBvZiBpbmZvcm1hdGlv
bgorICAgIC8vIHJlcXVpcmVkIHRvIGxvb2sgdXAgYSBNZWRpYVN0cmVhbVRyYWNrIGltcGxlbWVu
dGF0aW9uLgorICAgIC8vIEl0IGlzIG9ubHkgdXNlZnVsIHRvIGNhbGwgdGhlbSB3aGVuIGhhc1Nl
bGVjdG9yKCkgcmV0dXJucyB0cnVlLgorICAgIFdFQktJVF9FWFBPUlQgY29uc3QgV2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yIHN0cmVhbSgpIGNvbnN0OworCisgICAgV0VCS0lUX0VYUE9SVCBjb25z
dCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudCBjb21wb25lbnQoKSBjb25zdDsKKwogICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYlJUQ1N0YXRzUmVzcG9uc2Um
KSBjb25zdDsKIAogICAgIFdFQktJVF9FWFBPUlQgV2ViUlRDU3RhdHNSZXNwb25zZSBjcmVhdGVS
ZXNwb25zZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMjEwYTJmMzZlNzg3NjlkYjQwZTU1
MGM4NjY5YzI3ZTk3YzljZTZkOS4uMjdhNjA3ZTdmZmMxOGRiYjQ2NTA5YWYzY2JiOWVmYmE3YWIw
MjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xMzAsNiArMTMwLDExIEBAIHZvaWQgTWVkaWFTdHJl
YW1UcmFjazo6c291cmNlQ2hhbmdlZFN0YXRlKCkKICAgICB9CiB9CiAKK01lZGlhU3RyZWFtRGVz
Y3JpcHRvciogTWVkaWFTdHJlYW1UcmFjazo6c3RyZWFtRGVzY3JpcHRvcigpCit7CisgICAgcmV0
dXJuIG1fc3RyZWFtRGVzY3JpcHRvci5nZXQoKTsKK30KKwogTWVkaWFTdHJlYW1Db21wb25lbnQq
IE1lZGlhU3RyZWFtVHJhY2s6OmNvbXBvbmVudCgpCiB7CiAgICAgcmV0dXJuIG1fY29tcG9uZW50
LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaAppbmRleCBhNDcxYzUzNWNlMzNiN2FjM2FmOWZlMjZhYWI2ZDU2NDM0
MWE3YmRkLi4yZmUwN2QxNDFiMDNlM2M4YTNlOGZmYzRjYzZkZjM3MDViM2YwMWM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUih1bm11dGUpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
ZW5kZWQpOwogCisgICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBzdHJlYW1EZXNjcmlwdG9yKCk7
CiAgICAgTWVkaWFTdHJlYW1Db21wb25lbnQqIGNvbXBvbmVudCgpOwogCiAgICAgLy8gRXZlbnRU
YXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYjk4MTFhZGQ4MDIzNDJmOGY5MzJkMjQzNDIwMjJi
ODU2ZjY3MDc0My4uMjRjNDYwZGU2ZmNmYjY2YjE1ODNlYWEzMzM5ZTM5MGM4ZTE1MGJhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKQEAgLTQwMyw3ICs0MDMsNyBAQCBNZWRpYVN0cmVhbUxpc3QqIFJUQ1Bl
ZXJDb25uZWN0aW9uOjpyZW1vdGVTdHJlYW1zKCkgY29uc3QKIAogdm9pZCBSVENQZWVyQ29ubmVj
dGlvbjo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJh
Y2ssIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gc2VsZWN0b3IpCiB7Ci0gICAgUmVmUHRy
PFJUQ1N0YXRzUmVxdWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJUQ1N0YXRzUmVxdWVzdEltcGw6
OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAg
UmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJUQ1N0YXRzUmVxdWVz
dEltcGw6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3NDYWxsYmFjaywg
c2VsZWN0b3IpOwogICAgIC8vIEZJWE1FOiBBZGQgcGFzc2luZyBzZWxlY3RvciBhcyBwYXJ0IG9m
IHRoZSBzdGF0c1JlcXVlc3QuCiAgICAgbV9wZWVySGFuZGxlci0+Z2V0U3RhdHMoc3RhdHNSZXF1
ZXN0LnJlbGVhc2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAppbmRleCAwMWVjZWFkMmY0ZDQ1
N2E0YjBmNWFmNmY4YzEwOWJlZDA1ODBiYmFkLi5iNDAxNmEzNjZiM2Q4NjUzYmU1MjBmZDliZDUz
ZTI4Yzc0NmRjOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKQEAgLTM0LDE2ICszNCwxOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4g
UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gY2FsbGJhY2spCitQYXNzUmVmUHRyPFJU
Q1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxi
YWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKQogewotICAgIFJlZlB0
cjxSVENTdGF0c1JlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVx
dWVzdEltcGwoY29udGV4dCwgY2FsbGJhY2spKTsKKyAgICBSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0
SW1wbD4gcmVxdWVzdCA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcXVlc3RJbXBsKGNvbnRleHQs
IGNhbGxiYWNrLCBzZWxlY3RvcikpOwogICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOwog
ICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotUlRDU3RhdHNSZXF1ZXN0SW1wbDo6
UlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorUlRDU3RhdHNSZXF1ZXN0SW1wbDo6
UlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2s+IHNlbGVjdG9yKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiAg
ICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykKKyAgICAsIG1fc3RyZWFtKHNlbGVjdG9y
ID8gc2VsZWN0b3ItPnN0cmVhbURlc2NyaXB0b3IoKSA6IDApCisgICAgLCBtX2NvbXBvbmVudChz
ZWxlY3RvciA/IHNlbGVjdG9yLT5jb21wb25lbnQoKSA6IDApCiB7CiB9CiAKQEAgLTU2LDYgKzU4
LDIxIEBAIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZUJhc2U+IFJUQ1N0YXRzUmVxdWVzdElt
cGw6OmNyZWF0ZVJlc3BvbnNlKCkKICAgICByZXR1cm4gUlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRl
KCk7CiB9CiAKK2Jvb2wgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6aGFzU2VsZWN0b3IoKQoreworICAg
IHJldHVybiBtX3N0cmVhbTsKK30KKworTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBSVENTdGF0c1Jl
cXVlc3RJbXBsOjpzdHJlYW0oKQoreworICAgIHJldHVybiBtX3N0cmVhbS5nZXQoKTsKK30KKwor
TWVkaWFTdHJlYW1Db21wb25lbnQqIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNvbXBvbmVudCgpCit7
CisgICAgcmV0dXJuIG1fY29tcG9uZW50LmdldCgpOworfQorCiB2b2lkIFJUQ1N0YXRzUmVxdWVz
dEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4g
cmVzcG9uc2UpCiB7CiAgICAgaWYgKCFtX3N1Y2Nlc3NDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgK
aW5kZXggYmRhMTU1ZWFiZjI1ZWEwMDU3ZjdjM2U2MWE4MDFjMDFjMjdjMDc2ZC4uODc2MDYzYzMx
NGUzZTBmNjExODcwMzUwNjYxNjU0NTY4ZjBkOThhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTQw
LDIxICs0MCwyNyBAQCBjbGFzcyBSVENTdGF0c0NhbGxiYWNrOwogCiBjbGFzcyBSVENTdGF0c1Jl
cXVlc3RJbXBsIDogcHVibGljIFJUQ1N0YXRzUmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJh
Y2s+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4sIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4pOwogICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVz
dEltcGwoKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4g
Y3JlYXRlUmVzcG9uc2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNz
UmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJU
Q1N0YXRzUmVzcG9uc2VCYXNlPiBjcmVhdGVSZXNwb25zZSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBoYXNTZWxlY3RvcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yKiBzdHJlYW0oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE1lZGlhU3RyZWFtQ29t
cG9uZW50KiBjb21wb25lbnQoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZUJhc2U+KSBPVkVSUklERTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7
CiAKIHByaXZhdGU6Ci0gICAgUlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPik7CisgICAgUlRDU3RhdHNSZXF1ZXN0
SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNr
PiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPik7CiAKICAgICB2b2lkIGNsZWFyKCk7CiAK
ICAgICBSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CisgICAgUmVm
UHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gbV9zdHJlYW07CisgICAgUmVmUHRyPE1lZGlhU3Ry
ZWFtQ29tcG9uZW50PiBtX2NvbXBvbmVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU3RhdHNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcAppbmRleCAzYWM0YzJmMjhmYzA4ZjZkZjBkY2Uw
OGVkYzE1YzIyNWZmMmFjMDQxLi42M2Q5OWEwY2UyNjk0YzE1ODJkNTIxMjVmMjg3NTRjY2NlZTll
YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCkBAIC0xLDMgKzEsNCBAQAorCiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgpAQCAtMzIsNiArMzMsOCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNvbXBvbmVudC5oPgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3Rh
dHNSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaD4KIApA
QCAtNjMsNiArNjYsMjEgQEAgV2ViUlRDU3RhdHNSZXNwb25zZSBXZWJSVENTdGF0c1JlcXVlc3Q6
OmNyZWF0ZVJlc3BvbnNlKCkgY29uc3QKICAgICByZXR1cm4gV2ViUlRDU3RhdHNSZXNwb25zZSht
X3ByaXZhdGUtPmNyZWF0ZVJlc3BvbnNlKCkpOwogfQogCitib29sIFdlYlJUQ1N0YXRzUmVxdWVz
dDo6aGFzU2VsZWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc1NlbGVj
dG9yKCk7Cit9CisKK2NvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBXZWJSVENTdGF0c1Jl
cXVlc3Q6OnN0cmVhbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcihtX3ByaXZhdGUtPnN0cmVhbSgpKTsKK30KKworY29uc3QgV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQgV2ViUlRDU3RhdHNSZXF1ZXN0Ojpjb21wb25lbnQoKSBjb25zdAoreworICAgIHJldHVy
biBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudChtX3ByaXZhdGUtPmNvbXBvbmVudCgpKTsKK30KKwog
dm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViUlRDU3Rh
dHNSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CiB7CiAgICAgbV9wcml2YXRlLT5yZXF1ZXN0U3Vj
Y2VlZGVkKHJlc3BvbnNlKTsKQEAgLTcxLDQgKzg5LDMgQEAgdm9pZCBXZWJSVENTdGF0c1JlcXVl
c3Q6OnJlcXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgcmVzcG9uc2Up
IGMKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3QuaAppbmRleCAyMmMxOWI4N2Y3Yzc1Y2EyNzI5YmJlMWZkN2YyMWZhMWMxNDdj
OTcxLi42YjkwOTY4Mjk3M2E4NmJlZDg1ODFjMDliNDZlMWM3NjRhZDQzNjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3Qu
aApAQCAtMzksNiArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1lZGlh
U3RyZWFtQ29tcG9uZW50OworY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgUlRD
U3RhdHNSZXNwb25zZUJhc2U7CiAKIGNsYXNzIFJUQ1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPFJUQ1N0YXRzUmVxdWVzdD4gewpAQCAtNDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UlRDU3RhdHNSZXF1ZXN0KCkgeyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
UlRDU3RhdHNSZXNwb25zZUJhc2U+IGNyZWF0ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBoYXNTZWxlY3RvcigpID0gMDsKKyAgICB2aXJ0dWFsIE1lZGlhU3RyZWFtRGVzY3JpcHRv
ciogc3RyZWFtKCkgPSAwOworICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1Db21wb25lbnQqIGNvbXBv
bmVudCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVzcG9uc2VCYXNlPikgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzU0ZmQ4MWQ0ZmI4YmNlMDBj
MzY0YTlkYzgzOTA0ODQxOWFjNWJiNi4uYzE4ZTYyOTYwMzQ5M2I3ZjEzNmQ5MWYwNjg2YTJhMWM0
ZjZlY2YxZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTE2ICBIYXJhbGQgQWx2ZXN0cmFuZCAgPGh0YUBn
b29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgU2VsZWN0b3IgYXJndW1lbnQgdG8g
UlRDUGVlckNvbm5lY3Rpb24uZ2V0U3RhdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk5NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICBUaGUgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB3aWxsIHJl
dHVybiBvbmUgb2JqZWN0IG9ubHkKKyAgICAgICAgd2hlbiBpdCBnZXRzIGEgc2VsZWN0b3IsIGFu
ZCBhbiBldmVuIG51bWJlciB3aGVuIHRoZXJlIGlzIG5vIHNlbGVjdG9yLgorICAgICAgICBUaGlz
IGFsbG93cyB0byB2ZXJpZnkgdGhhdCB0aGUgYXJndW1lbnQgaXMgcGFzc2VkLCBidXQgbm90IGl0
cyB2YWx1ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorCiAyMDEyLTEwLTE0ICBKb24gTGVlICA8am9ubGVlQGFw
cGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBub3RpZmljYXRpb24gb3JpZ2luIHBlcm1pc3Npb24g
cmVxdWVzdCB3aGVuIG5vIGpzIGNhbGxiYWNrIGlzIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuY3BwCmluZGV4IDA5ZjVjNWQ1ZTEyNmM3ZTI1MDM1ZDg0ZmQxZjExNzdhYWE1
MmM0ODUuLjgwMTQ4Y2MyY2RkNTBkMGIzYzMzMWMwMjUzMjNmYzhjNGM3YmYwOGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAKICNpbmNsdWRl
ICJNb2NrQ29uc3RyYWludHMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50
cy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNvbXBvbmVudC5oPgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0Lmg+CkBAIC0yMTcsMTMgKzIxOSwyMiBAQCB2b2lkIE1vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVz
dCYgcmVxdWVzdAogewogICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UgPSByZXF1ZXN0
LmNyZWF0ZVJlc3BvbnNlKCk7CiAgICAgZG91YmxlIGN1cnJlbnREYXRlID0gV1RGOjpqc0N1cnJl
bnRUaW1lKCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3N0cmVhbUNvdW50OyArK2kpIHsK
KyAgICBpZiAocmVxdWVzdC5oYXNTZWxlY3RvcigpKSB7CisgICAgICAgIFdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvciBzdHJlYW0gPSByZXF1ZXN0LnN0cmVhbSgpOworICAgICAgICBXZWJNZWRpYVN0
cmVhbUNvbXBvbmVudCBjb21wb25lbnQgPSByZXF1ZXN0LmNvbXBvbmVudCgpOworICAgICAgICAv
LyBGSVhNRTogVGhlcmUgaXMgbm8gY2hlY2sgdGhhdCB0aGUgZmV0Y2hlZCB2YWx1ZXMgYXJlIHZh
bGlkLgogICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsK
ICAgICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERh
dGUpOwotICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0
eXBlIiwgImF1ZGlvIik7Ci0gICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0
KCk7Ci0gICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJl
bnREYXRlKTsKICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVl
LCAidHlwZSIsICJ2aWRlbyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbV9zdHJlYW1Db3VudDsgKytpKSB7CisgICAgICAgICAgICBzaXplX3QgcmVwb3J0SW5k
ZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1l
bnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKKyAgICAgICAgICAgIHJlc3BvbnNl
LmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAiYXVkaW8iKTsKKyAgICAg
ICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7CisgICAgICAgICAgICBy
ZXNwb25zZS5hZGRFbGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7CisgICAg
ICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwg
InZpZGVvIik7CisgICAgICAgIH0KICAgICB9CiAgICAgcG9zdFRhc2sobmV3IFJUQ1N0YXRzUmVx
dWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCwgcmVzcG9uc2UpKTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
NDk4N2VkYmFlMzY4NGE5YjkxN2I3NWFmMzQxYzU4YTM5NDkzMDUwLi4yNWJlNGI4ZDU5Y2QzODU1
MTc0YmI0MzJiOTQ5NzRkMTVlOTIwNTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAt
MTYgIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IHRoZSBTZWxlY3RvciBhcmd1bWVudCB0byBSVENQZWVyQ29ubmVjdGlvbi5nZXRTdGF0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVj
dG9yLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTE1ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LCBUZXN0RXhwZWN0YXRpb25zIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3ItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1Nl
bGVjdG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWNmYzIyZDNiN2Q1ZjJlYzdlMDRmZGZk
Y2Q0ODc3YmQ1MzFiM2ViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE3IEBACitUZXN0cyB0aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdHMgc2VsZWN0b3Ig
YXJndW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBjID0gbmV3
IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBHb3QgYSBzdHJlYW0uCitQQVNTIHBjLmdldFN0
YXRzKHN0YXRzSGFuZGxlcjIsIHBjLmxvY2FsU3RyZWFtc1swXS52aWRlb1RyYWNrc1swXSkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0YXRzSGFuZGxlcjIgd2FzIGNhbGxlZAorUEFT
UyByZXN1bHQubGVuZ3RoIGlzID49IDEKK1BBU1MgdGltZXN0YW1wIGlzID49IHN0YXJ0VGltZQor
UEFTUyBsb2NhbC5zdGF0KCJ0eXBlIikgaXMgInZpZGVvIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9y
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTk5ODY0YTkxM2JmMDg5MDAxNDc3ZWY0YjU3NDM4OWVjNmUwOGE3
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUgUlRDUGVlckNv
bm5lY3Rpb24gc3RhdHMgc2VsZWN0b3IgYXJndW1lbnQuIik7CisKK3ZhciBwYyA9IG51bGw7Cit2
YXIgcmVzdWx0OwordmFyIHRpbWVzdGFtcDsKK3ZhciBsb2NhbDsKKworZnVuY3Rpb24gZ2V0VXNl
ck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrKSB7CisgICAgdHJ5IHsKKyAgICAgICAgbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRo
cmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIGVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5lcmF0aW9u
IGZhaWxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZ290U3RyZWFt
KHMpIHsKKyAgICB0ZXN0UGFzc2VkKCdHb3QgYSBzdHJlYW0uJyk7CisgICAgc3RyZWFtID0gczsK
KworICAgIHBjLmFkZFN0cmVhbShzdHJlYW0pOworICAgIHNob3VsZE5vdFRocm93KCdwYy5nZXRT
dGF0cyhzdGF0c0hhbmRsZXIyLCBwYy5sb2NhbFN0cmVhbXNbMF0udmlkZW9UcmFja3NbMF0pJyk7
Cit9CisKK2Z1bmN0aW9uIHN0YXRzSGFuZGxlcjIoc3RhdHVzKQoreworICAgIHRlc3RQYXNzZWQo
InN0YXRzSGFuZGxlcjIgd2FzIGNhbGxlZCIpOworICAgIHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQo
KTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzdWx0Lmxlbmd0aCcsICcxJyk7
CisgICAgbG9jYWwgPSByZXN1bHRbMF0ubG9jYWw7CisgICAgdGltZXN0YW1wID0gbG9jYWwudGlt
ZXN0YW1wOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCd0aW1lc3RhbXAnLCAnc3Rh
cnRUaW1lJyk7CisgICAgc2hvdWxkQmUoJ2xvY2FsLnN0YXQoInR5cGUiKScsICcidmlkZW8iJyk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBzdGFydFRpbWUgPSBuZXcgRGF0ZSgpLmdl
dFRpbWUoKTsKK3Nob3VsZE5vdFRocm93KCdwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bihudWxsKScpOworc2hvdWxkTm90VGhyb3coJ2dldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlk
ZW86dHJ1ZX0sIGdvdFN0cmVhbSknKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
d2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>