<?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>152013</bug_id>
          
          <creation_ts>2015-12-08 14:05:24 -0800</creation_ts>
          <short_desc>Picture element needs to respond to dynamic viewport changes</short_desc>
          <delta_ts>2016-01-05 00:55:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152140</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>ossy</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1147470</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-12-08 14:05:24 -0800</bug_when>
    <thetext>Picture element needs to respond to dynamic viewport changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147471</commentid>
    <comment_count>1</comment_count>
      <attachid>266939</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-12-08 14:06:02 -0800</bug_when>
    <thetext>Created attachment 266939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147474</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2015-12-08 14:18:48 -0800</bug_when>
    <thetext>rdar://problem/23766375</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147549</commentid>
    <comment_count>3</comment_count>
      <attachid>266939</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-08 17:15:07 -0800</bug_when>
    <thetext>Comment on attachment 266939
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:188
&gt; +            // iterate through expressions, stop if any of them eval to false
&gt; +            // (AND semantics)

Sentence case.

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:199
&gt; +            // assume true if we are at the end of the list,
&gt; +            // otherwise assume false

Ditto.

&gt; Source/WebCore/dom/Document.cpp:3510
&gt; +    Vector&lt;HTMLPictureElement*&gt; changedPictures;

reserveCapacity?

&gt; Source/WebCore/dom/Document.h:1310
&gt; +    void addViewportDependentPicture(HTMLPictureElement*);
&gt; +    void removeViewportDependentPicture(HTMLPictureElement*);

Can these take references?

&gt; Source/WebCore/html/HTMLPictureElement.cpp:69
&gt; +    unsigned s = m_viewportDependentMediaQueryResults.size();
&gt; +    for (unsigned i = 0; i &lt; s; i++) {

s -&gt; numResults?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147910</commentid>
    <comment_count>4</comment_count>
      <attachid>267036</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-12-09 12:44:09 -0800</bug_when>
    <thetext>Created attachment 267036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147912</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-09 12:45:58 -0800</bug_when>
    <thetext>Attachment 267036 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:55:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147915</commentid>
    <comment_count>6</comment_count>
      <attachid>267036</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-12-09 12:54:31 -0800</bug_when>
    <thetext>Comment on attachment 267036
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:187
&gt; +            size_t j = 0;

Since you use j outside the loop, maybe give it a better name?

&gt; Source/WebCore/dom/Document.cpp:3512
&gt; +    HashSet&lt;HTMLPictureElement*&gt;::iterator end = m_viewportDependentPictures.end();
&gt; +    for (HashSet&lt;HTMLPictureElement*&gt;::iterator it = m_viewportDependentPictures.begin(); it != end; ++it) {

I thought we could do this with a modern for loop now?

&gt; Source/WebCore/html/HTMLPictureElement.cpp:44
&gt; +HTMLPictureElement::~HTMLPictureElement()
&gt; +{
&gt; +    if (hasViewportDependentResults())
&gt; +        document().removeViewportDependentPicture(*this);
&gt; +}

Is it possible for a picture to start with a viewport dependent query, then have that source removed - leaving it in a state where it&apos;s in the hashset but will no longer return true from hasViewportDependentResults?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147936</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-12-09 13:42:54 -0800</bug_when>
    <thetext>Landed in r193859.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152681</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-01-05 00:55:12 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Landed in r193859.

The commit log was repeated 47 times.  :(  Dave, could you check your script?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266939</attachid>
            <date>2015-12-08 14:06:02 -0800</date>
            <delta_ts>2015-12-09 12:44:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13069</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAJKHJldmlz
aW9uIDE5MjkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw0NSBAQCBib29sIE1lZGlhUXVlcnlFdmFs
dWF0b3I6OmV2YWwoY29uc3QgTWVkCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yOjpldmFsQ2hlY2tpbmdWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoY29u
c3QgTWVkaWFRdWVyeVNldCogcXVlcnlTZXQsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFR
dWVyeVJlc3VsdD4+JiByZXN1bHRzKQoreworICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgYXV0byYgcXVlcmllcyA9IHF1ZXJ5U2V0LT5xdWVyeVZlY3Rvcigp
OworICAgIGlmICghcXVlcmllcy5zaXplKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1ZXJpZXMu
c2l6ZSgpICYmICFyZXN1bHQ7ICsraSkgeworICAgICAgICBNZWRpYVF1ZXJ5KiBxdWVyeSA9IHF1
ZXJpZXNbaV0uZ2V0KCk7CisKKyAgICAgICAgaWYgKHF1ZXJ5LT5pZ25vcmVkKCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAobWVkaWFUeXBlTWF0Y2gocXVlcnktPm1lZGlh
VHlwZSgpKSkgeworICAgICAgICAgICAgYXV0byYgZXhwcmVzc2lvbnMgPSBxdWVyeS0+ZXhwcmVz
c2lvbnMoKTsKKyAgICAgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCBleHByZXNzaW9ucywgc3Rv
cCBpZiBhbnkgb2YgdGhlbSBldmFsIHRvIGZhbHNlCisgICAgICAgICAgICAvLyAoQU5EIHNlbWFu
dGljcykKKyAgICAgICAgICAgIHNpemVfdCBqID0gMDsKKyAgICAgICAgICAgIGZvciAoOyBqIDwg
ZXhwcmVzc2lvbnMuc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICBib29sIGV4cHJSZXN1
bHQgPSBldmFsKGV4cHJlc3Npb25zLmF0KGopLmdldCgpKTsKKyAgICAgICAgICAgICAgICBpZiAo
ZXhwcmVzc2lvbnMuYXQoaiktPmlzVmlld3BvcnREZXBlbmRlbnQoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVF1ZXJ5UmVzdWx0Pigq
ZXhwcmVzc2lvbnMuYXQoaiksIGV4cHJSZXN1bHQpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWV4
cHJSZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAvLyBhc3N1bWUgdHJ1ZSBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgbGlz
dCwKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSBhc3N1bWUgZmFsc2UKKyAgICAgICAgICAgIHJl
c3VsdCA9IGFwcGx5UmVzdHJpY3RvcihxdWVyeS0+cmVzdHJpY3RvcigpLCBleHByZXNzaW9ucy5z
aXplKCkgPT0gaik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gYXBwbHlS
ZXN0cmljdG9yKHF1ZXJ5LT5yZXN0cmljdG9yKCksIGZhbHNlKTsKKyAgICB9CisKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogYm9vbCBjb21wYXJlVmFsdWUo
VCBhLCBUIGIsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogI2lmbmRlZiBNZWRpYVF1ZXJ5RXZhbHVhdG9yX2gKICNkZWZpbmUgTWVkaWFRdWVy
eUV2YWx1YXRvcl9oCiAKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDYgKzM4LDE5
IEBAIGNsYXNzIE1lZGlhUXVlcnlTZXQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFN0eWxl
UmVzb2x2ZXI7CiAKK2NsYXNzIE1lZGlhUXVlcnlSZXN1bHQgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKE1lZGlhUXVlcnlSZXN1bHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHAmIGV4cHIsIGJvb2wg
cmVzdWx0KQorICAgICAgICA6IG1fZXhwcmVzc2lvbihleHByKQorICAgICAgICAsIG1fcmVzdWx0
KHJlc3VsdCkKKyAgICB7CisgICAgfQorCisgICAgTWVkaWFRdWVyeUV4cCBtX2V4cHJlc3Npb247
CisgICAgYm9vbCBtX3Jlc3VsdDsKK307CisKIC8qKgogICogQ2xhc3MgdGhhdCBldmFsdWF0ZXMg
Y3NzIG1lZGlhIHF1ZXJpZXMgYXMgZGVmaW5lZCBpbgogICogQ1NTMyBNb2R1bGUgIk1lZGlhIFF1
ZXJpZXMiIChodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8pCkBAIC03OCw2
ICs5Miw5IEBAIHB1YmxpYzoKIAogICAgIC8qKiBFdmFsdWF0ZXMgbWVkaWEgcXVlcnkgc3ViZXhw
cmVzc2lvbiwgaWUgImFuZCAobWVkaWEtZmVhdHVyZTogdmFsdWUpIiBwYXJ0ICovCiAgICAgYm9v
bCBldmFsKGNvbnN0IE1lZGlhUXVlcnlFeHAqKSBjb25zdDsKKyAgICAKKyAgICAvKiBFdmFsdWF0
ZXMgYSBsaXN0IG9mIG1lZGlhIHF1ZXJpZXMgYW5kIGZpbGxzIGluIGEgdmVjdG9yIHdpdGggYW55
IHZpZXdwb3J0LWRlcGVuZGVudCByZXN1bHRzIGZvdW5kLiAqLworICAgIGJvb2wgZXZhbENoZWNr
aW5nVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKGNvbnN0IE1lZGlhUXVlcnlTZXQqLCBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVlcnlSZXN1bHQ+PiYpOwogCiBwcml2YXRlOgogICAgIFN0
cmluZyBtX21lZGlhVHlwZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAkocmV2
aXNpb24gMTkyOTAxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50UnVsZVNldHMu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0hh
c2guaCIKLSNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2
YWx1YXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUnVsZUZlYXR1
cmUuaCIKICNpbmNsdWRlICJSdWxlU2V0LmgiCkBAIC05MywxOSArOTMsNiBAQCBjbGFzcyBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTsKIHN0cnVjdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKLWNsYXNzIE1lZGlhUXVlcnlSZXN1bHQgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUXVlcnlSZXN1bHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLXB1YmxpYzoKLSAgICBNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHAm
IGV4cHIsIGJvb2wgcmVzdWx0KQotICAgICAgICA6IG1fZXhwcmVzc2lvbihleHByKQotICAgICAg
ICAsIG1fcmVzdWx0KHJlc3VsdCkKLSAgICB7Ci0gICAgfQotCi0gICAgTWVkaWFRdWVyeUV4cCBt
X2V4cHJlc3Npb247Ci0gICAgYm9vbCBtX3Jlc3VsdDsKLX07Ci0KIGVudW0gU3R5bGVTaGFyaW5n
QmVoYXZpb3IgewogICAgIEFsbG93U3R5bGVTaGFyaW5nLAogICAgIERpc2FsbG93U3R5bGVTaGFy
aW5nLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxOTI5MDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4
Myw3IEBACiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJI
VE1MUGljdHVyZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5o
IgpAQCAtMzUwMCw2ICszNTAxLDIwIEBAIHZvaWQgRG9jdW1lbnQ6OmV2YWx1YXRlTWVkaWFRdWVy
eUxpc3QoKQogewogICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQogICAgICAgICBtX21lZGlh
UXVlcnlNYXRjaGVyLT5zdHlsZVJlc29sdmVyQ2hhbmdlZCgpOworICAgIAorICAgIGNoZWNrVmll
d3BvcnREZXBlbmRlbnRQaWN0dXJlcygpOworfQorCit2b2lkIERvY3VtZW50OjpjaGVja1ZpZXdw
b3J0RGVwZW5kZW50UGljdHVyZXMoKQoreworICAgIFZlY3RvcjxIVE1MUGljdHVyZUVsZW1lbnQq
PiBjaGFuZ2VkUGljdHVyZXM7CisgICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPjo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzLmVuZCgpOworICAg
IGZvciAoSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBtX3ZpZXdw
b3J0RGVwZW5kZW50UGljdHVyZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAg
IGlmICgoKml0KS0+dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKSkKKyAgICAgICAgICAg
IGNoYW5nZWRQaWN0dXJlcy5hcHBlbmQoKml0KTsKKyAgICB9CisgICAgZm9yIChhdXRvKiBwaWN0
dXJlIDogY2hhbmdlZFBpY3R1cmVzKQorICAgICAgICBwaWN0dXJlLT5zb3VyY2VzQ2hhbmdlZCgp
OwogfQogCiB2b2lkIERvY3VtZW50OjpvcHRpbWl6ZWRTdHlsZVNoZWV0VXBkYXRlVGltZXJGaXJl
ZCgpCkBAIC02NzgxLDQgKzY3OTYsMTQgQEAgdm9pZCBEb2N1bWVudDo6YXBwbHlDb250ZW50RGlz
cG9zaXRpb25BdAogICAgICAgICBlbmZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hPcmlnaW4pOwog
fQogCit2b2lkIERvY3VtZW50OjphZGRWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUoSFRNTFBpY3R1
cmVFbGVtZW50KiBwaWN0dXJlKQoreworICAgIG1fdmlld3BvcnREZXBlbmRlbnRQaWN0dXJlcy5h
ZGQocGljdHVyZSk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJlbW92ZVZpZXdwb3J0RGVwZW5kZW50
UGljdHVyZShIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1cmUpCit7CisgICAgbV92aWV3cG9ydERl
cGVuZGVudFBpY3R1cmVzLnJlbW92ZShwaWN0dXJlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE5MjkwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDcg
QEAgY2xhc3MgSFRNTElGcmFtZUVsZW1lbnQ7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xh
c3MgSFRNTE1hcEVsZW1lbnQ7CiBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworY2xhc3MgSFRNTFBp
Y3R1cmVFbGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVx
dWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CkBAIC0xMzA1LDYgKzEzMDYsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRFbmZvcmNlQ29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNhbmRi
b3goKSBjb25zdDsKICAgICB2b2lkIGFwcGx5Q29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNh
bmRib3goKTsKIAorICAgIHZvaWQgYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0
dXJlRWxlbWVudCopOworICAgIHZvaWQgcmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhU
TUxQaWN0dXJlRWxlbWVudCopOworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25G
bGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9
OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9j
dW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTE0MDIsNiAr
MTQwNiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlRE9NQ29va2llQ2FjaGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKSBvdmVycmlkZSBmaW5hbDsKIAorICAgIHZvaWQgY2hlY2tWaWV3cG9ydERl
cGVuZGVudFBpY3R1cmVzKCk7CisKICAgICB1bnNpZ25lZCBtX3JlZmVyZW5jaW5nTm9kZUNvdW50
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlUmVzb2x2ZXI+IG1fc3R5bGVSZXNvbHZlcjsK
QEAgLTE2MjYsNiArMTYzMiw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBt
X3NhdmVkUGxhY2Vob2xkZXJSZW5kZXJTdHlsZTsKICNlbmRpZgogCisgICAgSGFzaFNldDxIVE1M
UGljdHVyZUVsZW1lbnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CisKICAgICBpbnQg
bV9sb2FkRXZlbnREZWxheUNvdW50OwogICAgIFRpbWVyIG1fbG9hZEV2ZW50RGVsYXlUaW1lcjsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxOTI5NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSFRNTERvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgorI2luY2x1ZGUgIkhUTUxQaWN0dXJlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTb3Vy
Y2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNyY3NldFBhcnNlci5oIgogI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKQEAgLTE0Myw2ICsxNDQsOSBAQCBJbWFnZUNhbmRpZGF0ZSBIVE1M
SW1hZ2VFbGVtZW50OjpiZXN0Rml0CiAgICAgYXV0byogcGFyZW50ID0gcGFyZW50Tm9kZSgpOwog
ICAgIGlmICghaXM8SFRNTFBpY3R1cmVFbGVtZW50PihwYXJlbnQpKQogICAgICAgICByZXR1cm4g
eyB9OworICAgIGF1dG8qIHBpY3R1cmUgPSBkb3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KHBh
cmVudCk7CisgICAgcGljdHVyZS0+Y2xlYXJWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKTsKKyAg
ICBkb2N1bWVudCgpLnJlbW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVyZShwaWN0dXJlKTsKICAg
ICBmb3IgKE5vZGUqIGNoaWxkID0gcGFyZW50LT5maXJzdENoaWxkKCk7IGNoaWxkICYmIGNoaWxk
ICE9IHRoaXM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFp
czxIVE1MU291cmNlRWxlbWVudD4oKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MTYxLDcgKzE2NSwxMCBAQCBJbWFnZUNhbmRpZGF0ZSBIVE1MSW1hZ2VFbGVtZW50OjpiZXN0Rml0
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgTWVkaWFRdWVy
eUV2YWx1YXRvciBldmFsdWF0b3IoZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJz
Y3JlZW4iLCBkb2N1bWVudCgpLmZyYW1lKCksIGNvbXB1dGVkU3R5bGUoKSk7Ci0gICAgICAgIGlm
ICghZXZhbHVhdG9yLmV2YWwoTWVkaWFRdWVyeVNldDo6Y3JlYXRlQWxsb3dpbmdEZXNjcmlwdGlv
blN5bnRheChzb3VyY2UubWVkaWEoKSkucHRyKCkpKQorICAgICAgICBib29sIGV2YWx1YXRpb24g
PSBldmFsdWF0b3IuZXZhbENoZWNraW5nVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKHNvdXJjZS5t
ZWRpYVF1ZXJ5U2V0KCksIHBpY3R1cmUtPnZpZXdwb3J0RGVwZW5kZW50UmVzdWx0cygpKTsKKyAg
ICAgICAgaWYgKHBpY3R1cmUtPmhhc1ZpZXdwb3J0RGVwZW5kZW50UmVzdWx0cygpKQorICAgICAg
ICAgICAgZG9jdW1lbnQoKS5hZGRWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUocGljdHVyZSk7Cisg
ICAgICAgIGlmICghZXZhbHVhdGlvbikKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAK
ICAgICAgICAgZmxvYXQgc291cmNlU2l6ZSA9IHBhcnNlU2l6ZXNBdHRyaWJ1dGUoc291cmNlLmZh
c3RHZXRBdHRyaWJ1dGUoc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQoKS5yZW5kZXJWaWV3
KCksIGRvY3VtZW50KCkuZnJhbWUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
aWN0dXJlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGljdHVyZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTI5NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDIw
IEBAIEhUTUxQaWN0dXJlRWxlbWVudDo6SFRNTFBpY3R1cmVFbGVtZW50KGMKIHsKIH0KIAorSFRN
TFBpY3R1cmVFbGVtZW50Ojp+SFRNTFBpY3R1cmVFbGVtZW50KCkKK3sKKyAgICBpZiAoaGFzVmll
d3BvcnREZXBlbmRlbnRSZXN1bHRzKCkpCisgICAgICAgIGRvY3VtZW50KCkucmVtb3ZlVmlld3Bv
cnREZXBlbmRlbnRQaWN0dXJlKHRoaXMpOworfQorCit2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6
ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQoreworICAgIGlmICho
YXNWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSAmJiBvbGREb2N1bWVudCkKKyAgICAgICAgb2xk
RG9jdW1lbnQtPnJlbW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVyZSh0aGlzKTsKKyAgICBIVE1M
RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQpOworICAgIHNvdXJjZXND
aGFuZ2VkKCk7Cit9CisKIFJlZjxIVE1MUGljdHVyZUVsZW1lbnQ+IEhUTUxQaWN0dXJlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MUGljdHVyZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKQEAgLTQ4LDUgKzYyLDE2IEBAIHZvaWQgSFRNTFBpY3R1cmVFbGVtZW50
Ojpzb3VyY2VzQ2hhbmdlZCgKICAgICAgICAgaW1hZ2VFbGVtZW50LnNlbGVjdEltYWdlU291cmNl
KCk7CiB9CiAKK2Jvb2wgSFRNTFBpY3R1cmVFbGVtZW50Ojp2aWV3cG9ydENoYW5nZUFmZmVjdGVk
UGljdHVyZSgpCit7CisgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBldmFsdWF0b3IoZG9jdW1lbnQo
KS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1bWVudCgpLmZyYW1lKCksIGNv
bXB1dGVkU3R5bGUoKSk7CisgICAgdW5zaWduZWQgcyA9IG1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0cy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHM7IGkr
KykgeworICAgICAgICBpZiAoZXZhbHVhdG9yLmV2YWwoJm1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0c1tpXS0+bV9leHByZXNzaW9uKSAhPSBtX3ZpZXdwb3J0RGVwZW5kZW50TWVk
aWFRdWVyeVJlc3VsdHNbaV0tPm1fcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgJKHJldmlzaW9uIDE5Mjk1MykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE3ICsy
NywzMCBAQAogI2RlZmluZSBIVE1MUGljdHVyZUVsZW1lbnRfaAogCiAjaW5jbHVkZSAiSFRNTEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSFRNTFBpY3R1cmVFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxF
bGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhUTUxQaWN0dXJlRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIH5IVE1MUGljdHVyZUVs
ZW1lbnQoKTsKIAogICAgIHZvaWQgc291cmNlc0NoYW5nZWQoKTsKIAorICAgIHZvaWQgY2xlYXJW
aWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSB7IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5
UmVzdWx0cy5jbGVhcigpOyB9CisgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuc2l6
ZSgpOyB9CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVF1ZXJ5UmVzdWx0Pj4mIHZp
ZXdwb3J0RGVwZW5kZW50UmVzdWx0cygpIHsgcmV0dXJuIG1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0czsgfQorCisgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVu
dCogb2xkRG9jdW1lbnQpOworICAgIAorICAgIGJvb2wgdmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBp
Y3R1cmUoKTsKKwogcHJpdmF0ZToKICAgICBIVE1MUGljdHVyZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgCisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVF1ZXJ5UmVzdWx0Pj4gbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOwor
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTkyOTUzKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsx
NjcsOCBAQCB2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjCiB7CiAgICAg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBpZiAobmFtZSA9
PSBzcmNzZXRBdHRyIHx8IG5hbWUgPT0gc2l6ZXNBdHRyIHx8IG5hbWUgPT0gbWVkaWFBdHRyIHx8
IG5hbWUgPT0gdHlwZUF0dHIpIHsKKyAgICAgICAgaWYgKG5hbWUgPT0gbWVkaWFBdHRyKQorICAg
ICAgICAgICAgbV9tZWRpYVF1ZXJ5U2V0ID0gTWVkaWFRdWVyeVNldDo6Y3JlYXRlQWxsb3dpbmdE
ZXNjcmlwdGlvblN5bnRheCh2YWx1ZSk7CiAgICAgICAgIGF1dG8qIHBhcmVudCA9IHBhcmVudE5v
ZGUoKTsKICAgICAgICAgaWYgKGlzPEhUTUxQaWN0dXJlRWxlbWVudD4ocGFyZW50KSkKICAgICAg
ICAgICAgIGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkuc291cmNlc0NoYW5n
ZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgJKHJldmlz
aW9uIDE5Mjk1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBIVE1MU291cmNlRWxlbWVu
dF9oCiAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVFcnJvckV2ZW50KCk7CiAgICAgdm9pZCBjYW5j
ZWxQZW5kaW5nRXJyb3JFdmVudCgpOwogCisgICAgTWVkaWFRdWVyeVNldCogbWVkaWFRdWVyeVNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFRdWVyeVNldC5nZXQoKTsgfQorCiBwcml2YXRlOgog
ICAgIEhUTUxTb3VyY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
ICAgIApAQCAtNjQsNiArNjcsNyBAQCBwcml2YXRlOgogCiAgICAgVGltZXIgbV9lcnJvckV2ZW50
VGltZXI7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2NoZWR1bGVFcnJvckV2ZW50T25SZXN1bWUgeyBm
YWxzZSB9OworICAgIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtX21lZGlhUXVlcnlTZXQ7CiB9Owog
CiB9IC8vbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267036</attachid>
            <date>2015-12-09 12:44:09 -0800</date>
            <delta_ts>2015-12-09 12:54:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>32969</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5Mzg1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE1LTEyLTA5ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBQaWN0dXJlIGVsZW1lbnQgbmVlZHMg
dG8gcmVzcG9uZCB0byBkeW5hbWljIHZpZXdwb3J0IGNoYW5nZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTIwMTMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzIzNzY2Mzc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBpbiBmYXN0L3BpY3R1cmUuCisKKyAgICAgICAgKiBj
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
RXZhbHVhdG9yOjpldmFsQ2hlY2tpbmdWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMpOgorICAgICAg
ICBBZGQgbmV3IGV2YWx1YXRpb24gbWV0aG9kIHRoYXQgYWRkcyB2aWV3cG9ydCBkZXBlbmRlbnQg
cmVzdWx0cyB0byBhIHZlY3Rvci4gQSBmb2xsb3ctdXAgcGF0Y2gKKyAgICAgICAgd2lsbCByZWZh
Y3RvciB0aGUgc3R5bGUgcmVzb2x2ZXIgY29kZSB0byB1c2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFk
IG9mIHRoZSBzcGVjaWFsIHN0eWxlIHJlc29sdmVyIG9uZSwgaW4gb3JkZXIgdG8KKyAgICAgICAg
Z2V0IHJpZCBvZiB0aGUgY29kZSBkdXBsaWNhdGlvbi4gVHJhY2tlZCBieSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMDg5LgorCisgICAgICAgICogY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlSZXN1bHQ6Ok1l
ZGlhUXVlcnlSZXN1bHQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVF1ZXJ5UmVzdWx0OjpNZWRpYVF1ZXJ5UmVzdWx0KTogRGVsZXRlZC4K
KyAgICAgICAgTW92ZSBNZWRpYVF1ZXJ5UmVzdWx0IGludG8gYSBoZWFkZXIgc2luY2UgaXQgaXMg
dXNlZCBpbiBtdWx0aXBsZSBwbGFjZXMgbm93IGFuZCBub3QganVzdCBieSB0aGUgc3R5bGUKKyAg
ICAgICAgcmVzb2x2ZXIuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmV2YWx1YXRlTWVkaWFRdWVyeUxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNoZWNrVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlcyk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6b3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZVRpbWVyRmlyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGx5Q29udGVudERpc3Bvc2l0aW9uQXR0
YWNobWVudFNhbmRib3gpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZFZpZXdwb3J0
RGVwZW5kZW50UGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlVmll
d3BvcnREZXBlbmRlbnRQaWN0dXJlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAg
ICAgVGhlIGRvY3VtZW50IG5vdyBtYWludGFpbnMgYSBIYXNoU2V0IG9mIHZpZXdwb3J0LWRlcGVu
ZGVudCBwaWN0dXJlcywgYW5kIGl0IGNoZWNrcyB0aGVtIHdoZW5ldmVyIHRoZQorICAgICAgICB2
aWV3cG9ydCBjaGFuZ2VzLiBJZiB0aGVpciBtZWRpYSBxdWVyaWVzIHN0YXkgdGhlIHNhbWUsIHRo
ZW4gbm90aGluZyBoYXBwZW5zLiBJZiB0aGV5IGNoYW5nZSwgdGhlbgorICAgICAgICB0aGUgPHBp
Y3R1cmU+IHdpbGwgZ28gYmFjayBhbmQgcmUtY2hlY2sgYWxsIGl0cyA8c291cmNlPiBlbGVtZW50
cyB0byBzZWUgd2hhdCB0aGUgbmV3IGJlc3QgY2FuZGlkYXRlIGlzLgorCisgICAgICAgICogaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1l
bnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQpOgorICAgICAgICBSZXZpc2VkIHRv
IGNoZWNrIGZvciB2aWV3cG9ydCBkZXBlbmRlbmNpZXMgYW5kIHRvIGNhY2hlIHZpZXdwb3J0LWRl
cGVuZGVudCByZXN1bHRzIG9uIHRoZSA8cGljdHVyZT4gZWxlbWVudHMuCisgICAgICAgIFdoZW4g
YSA8cGljdHVyZT4gaXMgZm91bmQgdG8gYmUgdmlld3BvcnQtZGVwZW5kZW50IChvciBub3QpIGl0
IGlzIGFsc28gYWRkZWQgdG8gb3IgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudCdzCisgICAgICAg
IHNldCBvZiB0cmFja2VkIHBpY3R1cmVzLgorCisgICAgICAgICogaHRtbC9IVE1MUGljdHVyZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVtZW50OjpIVE1MUGlj
dHVyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVtZW50Ojp+SFRN
TFBpY3R1cmVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQaWN0dXJlRWxlbWVudDo6
ZGlkTW92ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVtZW50Ojpzb3Vy
Y2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGljdHVyZUVsZW1lbnQ6OnZpZXdw
b3J0Q2hhbmdlQWZmZWN0ZWRQaWN0dXJlKToKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxl
bWVudC5oOgorICAgICAgICBOZXcgY2FjaGluZyBvZiByZXN1bHRzIGFuZCB1cGRhdGluZyBvZiB0
aGUgZG9jdW1lbnQgSGFzaFNldCB3aGVuIHRoZSBwaWN0dXJlIGdldHMgZGVzdHJveWVkIG9yIG1v
dmVzIHRvCisgICAgICAgIGEgZGlmZmVyZW50IGRvY3VtZW50LgorCisgICAgICAgICogaHRtbC9I
VE1MU291cmNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291cmNlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDpD
YWNoZSB0aGUgbWVkaWEgYXR0cmlidXRlIGluIGEgcGFyc2VkIGZvcm0uIEEgZm9sbG93LXVwIHBh
dGNoIHdpbGwgaW1wcm92ZSB0aGUgPHZpZGVvPi88YXVkaW8+CisgICAgICAgIGNvZGUgdG8gbWFr
ZSB1c2Ugb2YgdGhpcyBwYXJzZWQgcmVzdWx0LiBUcmFja2VkIGJ5IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTIwOTAuCisKIDIwMTUtMTItMDkgIEpvYW5tYXJpZSBE
aWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFYOiBbR1RLXSBBbm9ueW1vdXMg
cmVuZGVyIGJsb2NrIGZsb3cgZWxlbWVudHMgc2hvdWxkIGJlIGV4cG9zZWQgYXMgQVRLX1JPTEVf
U0VDVElPTjsgbm90IEFUS19ST0xFX1BBTkVMCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCShyZXZpc2lvbiAxOTI5MDEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNDAgQEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsKGNvbnN0IE1lZAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgTWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbENoZWNraW5n
Vmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKGNvbnN0IE1lZGlhUXVlcnlTZXQqIHF1ZXJ5U2V0LCBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVlcnlSZXN1bHQ+PiYgcmVzdWx0cykKK3sKKyAg
ICBpZiAoIXF1ZXJ5U2V0KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8mIHF1ZXJp
ZXMgPSBxdWVyeVNldC0+cXVlcnlWZWN0b3IoKTsKKyAgICBpZiAoIXF1ZXJpZXMuc2l6ZSgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBxdWVyaWVzLnNpemUoKSAmJiAhcmVzdWx0OyArK2kpIHsKKyAg
ICAgICAgTWVkaWFRdWVyeSogcXVlcnkgPSBxdWVyaWVzW2ldLmdldCgpOworCisgICAgICAgIGlm
IChxdWVyeS0+aWdub3JlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYg
KG1lZGlhVHlwZU1hdGNoKHF1ZXJ5LT5tZWRpYVR5cGUoKSkpIHsKKyAgICAgICAgICAgIGF1dG8m
IGV4cHJlc3Npb25zID0gcXVlcnktPmV4cHJlc3Npb25zKCk7CisgICAgICAgICAgICBzaXplX3Qg
aiA9IDA7CisgICAgICAgICAgICBmb3IgKDsgaiA8IGV4cHJlc3Npb25zLnNpemUoKTsgKytqKSB7
CisgICAgICAgICAgICAgICAgYm9vbCBleHByUmVzdWx0ID0gZXZhbChleHByZXNzaW9ucy5hdChq
KS5nZXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25zLmF0KGopLT5pc1ZpZXdw
b3J0RGVwZW5kZW50KCkpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFRdWVyeVJlc3VsdD4oKmV4cHJlc3Npb25zLmF0KGopLCBleHByUmVz
dWx0KSk7CisgICAgICAgICAgICAgICAgaWYgKCFleHByUmVzdWx0KQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IGFwcGx5UmVz
dHJpY3RvcihxdWVyeS0+cmVzdHJpY3RvcigpLCBleHByZXNzaW9ucy5zaXplKCkgPT0gaik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gYXBwbHlSZXN0cmljdG9yKHF1ZXJ5
LT5yZXN0cmljdG9yKCksIGZhbHNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogYm9vbCBjb21wYXJlVmFsdWUoVCBhLCBUIGIsIE1lZGlh
RmVhdHVyZVByZWZpeCBvcCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuaAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmbmRl
ZiBNZWRpYVF1ZXJ5RXZhbHVhdG9yX2gKICNkZWZpbmUgTWVkaWFRdWVyeUV2YWx1YXRvcl9oCiAK
KyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDYgKzM4LDE5IEBAIGNsYXNzIE1lZGlh
UXVlcnlTZXQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiAKK2Ns
YXNzIE1lZGlhUXVlcnlSZXN1bHQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUXVl
cnlSZXN1bHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBNZWRpYVF1
ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHAmIGV4cHIsIGJvb2wgcmVzdWx0KQorICAgICAg
ICA6IG1fZXhwcmVzc2lvbihleHByKQorICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKKyAgICB7
CisgICAgfQorCisgICAgTWVkaWFRdWVyeUV4cCBtX2V4cHJlc3Npb247CisgICAgYm9vbCBtX3Jl
c3VsdDsKK307CisKIC8qKgogICogQ2xhc3MgdGhhdCBldmFsdWF0ZXMgY3NzIG1lZGlhIHF1ZXJp
ZXMgYXMgZGVmaW5lZCBpbgogICogQ1NTMyBNb2R1bGUgIk1lZGlhIFF1ZXJpZXMiIChodHRwOi8v
d3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8pCkBAIC03OCw2ICs5Miw5IEBAIHB1Ymxp
YzoKIAogICAgIC8qKiBFdmFsdWF0ZXMgbWVkaWEgcXVlcnkgc3ViZXhwcmVzc2lvbiwgaWUgImFu
ZCAobWVkaWEtZmVhdHVyZTogdmFsdWUpIiBwYXJ0ICovCiAgICAgYm9vbCBldmFsKGNvbnN0IE1l
ZGlhUXVlcnlFeHAqKSBjb25zdDsKKyAgICAKKyAgICAvKiBFdmFsdWF0ZXMgYSBsaXN0IG9mIG1l
ZGlhIHF1ZXJpZXMgYW5kIGZpbGxzIGluIGEgdmVjdG9yIHdpdGggYW55IHZpZXdwb3J0LWRlcGVu
ZGVudCByZXN1bHRzIGZvdW5kLiAqLworICAgIGJvb2wgZXZhbENoZWNraW5nVmlld3BvcnREZXBl
bmRlbnRSZXN1bHRzKGNvbnN0IE1lZGlhUXVlcnlTZXQqLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PE1lZGlhUXVlcnlSZXN1bHQ+PiYpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX21lZGlhVHlw
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAkocmV2aXNpb24gMTkyOTAxKQor
KysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50UnVsZVNldHMuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JDU1NPTVdyYXBwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0hhc2guaCIKLSNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUnVsZUZlYXR1cmUuaCIKICNpbmNsdWRl
ICJSdWxlU2V0LmgiCkBAIC05MywxOSArOTMsNiBAQCBjbGFzcyBWaWV3cG9ydFN0eWxlUmVzb2x2
ZXI7CiBjbGFzcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTsKIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnM7CiAKLWNsYXNzIE1lZGlhUXVlcnlSZXN1bHQgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1lZGlhUXVlcnlSZXN1bHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoK
LSAgICBNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHAmIGV4cHIsIGJvb2wgcmVz
dWx0KQotICAgICAgICA6IG1fZXhwcmVzc2lvbihleHByKQotICAgICAgICAsIG1fcmVzdWx0KHJl
c3VsdCkKLSAgICB7Ci0gICAgfQotCi0gICAgTWVkaWFRdWVyeUV4cCBtX2V4cHJlc3Npb247Ci0g
ICAgYm9vbCBtX3Jlc3VsdDsKLX07Ci0KIGVudW0gU3R5bGVTaGFyaW5nQmVoYXZpb3IgewogICAg
IEFsbG93U3R5bGVTaGFyaW5nLAogICAgIERpc2FsbG93U3R5bGVTaGFyaW5nLApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxOTI5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVk
ZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lQ29sbGVjdGlvbi5oIgog
I2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MUGljdHVyZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTY3Jp
cHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgpAQCAtMzUwMCw2ICsz
NTAxLDIwIEBAIHZvaWQgRG9jdW1lbnQ6OmV2YWx1YXRlTWVkaWFRdWVyeUxpc3QoKQogewogICAg
IGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5z
dHlsZVJlc29sdmVyQ2hhbmdlZCgpOworICAgIAorICAgIGNoZWNrVmlld3BvcnREZXBlbmRlbnRQ
aWN0dXJlcygpOworfQorCit2b2lkIERvY3VtZW50OjpjaGVja1ZpZXdwb3J0RGVwZW5kZW50UGlj
dHVyZXMoKQoreworICAgIFZlY3RvcjxIVE1MUGljdHVyZUVsZW1lbnQqLCAxNj4gY2hhbmdlZFBp
Y3R1cmVzOworICAgIEhhc2hTZXQ8SFRNTFBpY3R1cmVFbGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9
IG1fdmlld3BvcnREZXBlbmRlbnRQaWN0dXJlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8SFRN
TFBpY3R1cmVFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1
cmVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBpZiAoKCppdCktPnZpZXdw
b3J0Q2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkpCisgICAgICAgICAgICBjaGFuZ2VkUGljdHVyZXMu
YXBwZW5kKCppdCk7CisgICAgfQorICAgIGZvciAoYXV0byogcGljdHVyZSA6IGNoYW5nZWRQaWN0
dXJlcykKKyAgICAgICAgcGljdHVyZS0+c291cmNlc0NoYW5nZWQoKTsKIH0KIAogdm9pZCBEb2N1
bWVudDo6b3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZVRpbWVyRmlyZWQoKQpAQCAtNjc4MSw0ICs2
Nzk2LDE0IEBAIHZvaWQgRG9jdW1lbnQ6OmFwcGx5Q29udGVudERpc3Bvc2l0aW9uQXQKICAgICAg
ICAgZW5mb3JjZVNhbmRib3hGbGFncyhTYW5kYm94T3JpZ2luKTsKIH0KIAordm9pZCBEb2N1bWVu
dDo6YWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYgcGljdHVy
ZSkKK3sKKyAgICBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMuYWRkKCZwaWN0dXJlKTsKK30K
Kwordm9pZCBEb2N1bWVudDo6cmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0
dXJlRWxlbWVudCYgcGljdHVyZSkKK3sKKyAgICBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMu
cmVtb3ZlKCZwaWN0dXJlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE5MjkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDcgQEAgY2xhc3MgSFRNTElG
cmFtZUVsZW1lbnQ7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xhc3MgSFRNTE1hcEVsZW1l
bnQ7CiBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworY2xhc3MgSFRNTFBpY3R1cmVFbGVtZW50Owog
Y2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhp
dFRlc3RSZXN1bHQ7CkBAIC0xMzA1LDYgKzEzMDYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91
bGRFbmZvcmNlQ29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNhbmRib3goKSBjb25zdDsKICAg
ICB2b2lkIGFwcGx5Q29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNhbmRib3goKTsKIAorICAg
IHZvaWQgYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYpOwor
ICAgIHZvaWQgcmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVu
dCYpOworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNp
emVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3VtZW50
KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5z
aWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTE0MDIsNiArMTQwNiw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlRE9NQ29va2llQ2FjaGUoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkTG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBv
dmVycmlkZSBmaW5hbDsKIAorICAgIHZvaWQgY2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVz
KCk7CisKICAgICB1bnNpZ25lZCBtX3JlZmVyZW5jaW5nTm9kZUNvdW50OwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFN0eWxlUmVzb2x2ZXI+IG1fc3R5bGVSZXNvbHZlcjsKQEAgLTE2MjYsNiArMTYz
Miw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3NhdmVkUGxhY2Vob2xk
ZXJSZW5kZXJTdHlsZTsKICNlbmRpZgogCisgICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQq
PiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CisKICAgICBpbnQgbV9sb2FkRXZlbnREZWxh
eUNvdW50OwogICAgIFRpbWVyIG1fbG9hZEV2ZW50RGVsYXlUaW1lcjsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTI5NTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUg
IkhUTUxQaWN0dXJlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFNyY3NldFBhcnNlci5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKQEAgLTE0Myw2ICsxNDQsOSBAQCBJbWFnZUNhbmRpZGF0ZSBIVE1MSW1hZ2VFbGVtZW50Ojpi
ZXN0Rml0CiAgICAgYXV0byogcGFyZW50ID0gcGFyZW50Tm9kZSgpOwogICAgIGlmICghaXM8SFRN
TFBpY3R1cmVFbGVtZW50PihwYXJlbnQpKQogICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8q
IHBpY3R1cmUgPSBkb3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVudCk7CisgICAgcGlj
dHVyZS0+Y2xlYXJWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKTsKKyAgICBkb2N1bWVudCgpLnJl
bW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVyZSgqcGljdHVyZSk7CiAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IHBhcmVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSB0aGlzOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmICghaXM8SFRNTFNvdXJjZUVs
ZW1lbnQ+KCpjaGlsZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE2MSw3ICsxNjUsMTAg
QEAgSW1hZ2VDYW5kaWRhdGUgSFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdAogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZh
bHVhdG9yKGRvY3VtZW50KCkucHJpbnRpbmcoKSA/ICJwcmludCIgOiAic2NyZWVuIiwgZG9jdW1l
bnQoKS5mcmFtZSgpLCBjb21wdXRlZFN0eWxlKCkpOwotICAgICAgICBpZiAoIWV2YWx1YXRvci5l
dmFsKE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZUFsbG93aW5nRGVzY3JpcHRpb25TeW50YXgoc291cmNl
Lm1lZGlhKCkpLnB0cigpKSkKKyAgICAgICAgYm9vbCBldmFsdWF0aW9uID0gZXZhbHVhdG9yLmV2
YWxDaGVja2luZ1ZpZXdwb3J0RGVwZW5kZW50UmVzdWx0cyhzb3VyY2UubWVkaWFRdWVyeVNldCgp
LCBwaWN0dXJlLT52aWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSk7CisgICAgICAgIGlmIChwaWN0
dXJlLT5oYXNWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSkKKyAgICAgICAgICAgIGRvY3VtZW50
KCkuYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJlKTsKKyAgICAgICAgaWYgKCFl
dmFsdWF0aW9uKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBmbG9h
dCBzb3VyY2VTaXplID0gcGFyc2VTaXplc0F0dHJpYnV0ZShzb3VyY2UuZmFzdEdldEF0dHJpYnV0
ZShzaXplc0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSwgZG9jdW1lbnQo
KS5mcmFtZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE5Mjk1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1
cmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMjAgQEAgSFRNTFBpY3R1
cmVFbGVtZW50OjpIVE1MUGljdHVyZUVsZW1lbnQoYwogewogfQogCitIVE1MUGljdHVyZUVsZW1l
bnQ6On5IVE1MUGljdHVyZUVsZW1lbnQoKQoreworICAgIGlmIChoYXNWaWV3cG9ydERlcGVuZGVu
dFJlc3VsdHMoKSkKKyAgICAgICAgZG9jdW1lbnQoKS5yZW1vdmVWaWV3cG9ydERlcGVuZGVudFBp
Y3R1cmUoKnRoaXMpOworfQorCit2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6ZGlkTW92ZVRvTmV3
RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQoreworICAgIGlmIChoYXNWaWV3cG9ydERl
cGVuZGVudFJlc3VsdHMoKSAmJiBvbGREb2N1bWVudCkKKyAgICAgICAgb2xkRG9jdW1lbnQtPnJl
bW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVyZSgqdGhpcyk7CisgICAgSFRNTEVsZW1lbnQ6OmRp
ZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKKyAgICBzb3VyY2VzQ2hhbmdlZCgpOwor
fQorCiBSZWY8SFRNTFBpY3R1cmVFbGVtZW50PiBIVE1MUGljdHVyZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFBpY3R1cmVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CkBAIC00OCw1ICs2MiwxNiBAQCB2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6c291cmNlc0No
YW5nZWQoCiAgICAgICAgIGltYWdlRWxlbWVudC5zZWxlY3RJbWFnZVNvdXJjZSgpOwogfQogCiti
b29sIEhUTUxQaWN0dXJlRWxlbWVudDo6dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKQor
eworICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZhbHVhdG9yKGRvY3VtZW50KCkucHJpbnRpbmco
KSA/ICJwcmludCIgOiAic2NyZWVuIiwgZG9jdW1lbnQoKS5mcmFtZSgpLCBjb21wdXRlZFN0eWxl
KCkpOworICAgIHVuc2lnbmVkIG51bVJlc3VsdHMgPSBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFR
dWVyeVJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1SZXN1
bHRzOyBpKyspIHsKKyAgICAgICAgaWYgKGV2YWx1YXRvci5ldmFsKCZtX3ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyeVJlc3VsdHNbaV0tPm1fZXhwcmVzc2lvbikgIT0gbV92aWV3cG9ydERlcGVu
ZGVudE1lZGlhUXVlcnlSZXN1bHRzW2ldLT5tX3Jlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCShyZXZpc2lvbiAxOTI5NTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NywxNyArMjcsMzAgQEAKICNkZWZpbmUgSFRNTFBpY3R1cmVFbGVtZW50X2gKIAogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQaWN0dXJlRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MUGljdHVyZUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICB+SFRNTFBp
Y3R1cmVFbGVtZW50KCk7CiAKICAgICB2b2lkIHNvdXJjZXNDaGFuZ2VkKCk7CiAKKyAgICB2b2lk
IGNsZWFyVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgeyBtX3ZpZXdwb3J0RGVwZW5kZW50TWVk
aWFRdWVyeVJlc3VsdHMuY2xlYXIoKTsgfQorICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRS
ZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1
bHRzLnNpemUoKTsgfQorICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFRdWVyeVJlc3Vs
dD4+JiB2aWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSB7IHJldHVybiBtX3ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyeVJlc3VsdHM7IH0KKworICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQo
RG9jdW1lbnQqIG9sZERvY3VtZW50KTsKKyAgICAKKyAgICBib29sIHZpZXdwb3J0Q2hhbmdlQWZm
ZWN0ZWRQaWN0dXJlKCk7CisKIHByaXZhdGU6CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIAorICAgIFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFRdWVyeVJlc3VsdD4+IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVz
dWx0czsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE5Mjk1MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjcsNiArMTY3LDggQEAgdm9pZCBIVE1MU291cmNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoYwog
ewogICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgaWYg
KG5hbWUgPT0gc3Jjc2V0QXR0ciB8fCBuYW1lID09IHNpemVzQXR0ciB8fCBuYW1lID09IG1lZGlh
QXR0ciB8fCBuYW1lID09IHR5cGVBdHRyKSB7CisgICAgICAgIGlmIChuYW1lID09IG1lZGlhQXR0
cikKKyAgICAgICAgICAgIG1fbWVkaWFRdWVyeVNldCA9IE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZUFs
bG93aW5nRGVzY3JpcHRpb25TeW50YXgodmFsdWUpOwogICAgICAgICBhdXRvKiBwYXJlbnQgPSBw
YXJlbnROb2RlKCk7CiAgICAgICAgIGlmIChpczxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVudCkp
CiAgICAgICAgICAgICBkb3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KCpwYXJlbnQpLnNvdXJj
ZXNDaGFuZ2VkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5o
CShyZXZpc2lvbiAxOTI5NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSFRNTFNvdXJj
ZUVsZW1lbnRfaAogCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYUxp
c3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw2
ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlRXJyb3JFdmVudCgpOwogICAgIHZv
aWQgY2FuY2VsUGVuZGluZ0Vycm9yRXZlbnQoKTsKIAorICAgIE1lZGlhUXVlcnlTZXQqIG1lZGlh
UXVlcnlTZXQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUXVlcnlTZXQuZ2V0KCk7IH0KKwogcHJp
dmF0ZToKICAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKICAgICAKQEAgLTY0LDYgKzY3LDcgQEAgcHJpdmF0ZToKIAogICAgIFRpbWVyIG1fZXJy
b3JFdmVudFRpbWVyOwogICAgIGJvb2wgbV9zaG91bGRSZXNjaGVkdWxlRXJyb3JFdmVudE9uUmVz
dW1lIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8TWVkaWFRdWVyeVNldD4gbV9tZWRpYVF1ZXJ5U2V0
OwogfTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTkzODU0KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUt
MTItMDkgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFBpY3R1cmUg
ZWxlbWVudCBuZWVkcyB0byByZXNwb25kIHRvIGR5bmFtaWMgdmlld3BvcnQgY2hhbmdlcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjAxMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjM3NjYzNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3BpY3R1cmUvcmVzb3VyY2VzL3Jlc2l6ZS10
ZXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3BpY3R1cmUvdmlld3BvcnQtcmVzaXplLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9waWN0dXJlL3ZpZXdwb3J0LXJlc2l6
ZS5odG1sOiBBZGRlZC4KKwogMjAxNS0xMi0wOSAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXog
IDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkIEdUSyBHYXJk
ZW5pbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3BpY3R1cmUvdmlld3BvcnQtcmVzaXplLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BpY3R1cmUvdmlld3Bv
cnQtcmVzaXplLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
cGljdHVyZS92aWV3cG9ydC1yZXNpemUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTkgQEAKK1Rlc3QgdGhhdCBwaWN0dXJlcyBwcm9wZXJseSB1cGRhdGUgd2hlbiB0aGUg
dmlld3BvcnQgY2hhbmdlcyBzaXplLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIGlu
bmVyV2lkdGggaXMgODAwCitQQVNTIGlubmVySGVpZ2h0IGlzIDYwMAorUEFTUyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2ltcGxlIikuY2xpZW50V2lkdGggaXMgODAwCitQQVNTIGN1cnJlbnRT
cmNGaWxlTmFtZSgic2ltcGxlIikgaXMgImltYWdlLXNldC0yeC5wbmc/MiIKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlIikuY2xpZW50V2lkdGggaXMgODAwCitQQVNTIGN1
cnJlbnRTcmNGaWxlTmFtZSgibXVsdGlwbGUiKSBpcyAiaW1hZ2Utc2V0LTJ4LnBuZz8yIgorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3RoZXJfY2hpbGRyZW4iKS5jbGllbnRXaWR0aCBp
cyA4MDAKK1BBU1MgY3VycmVudFNyY0ZpbGVOYW1lKCJvdGhlcl9jaGlsZHJlbiIpIGlzICJpbWFn
ZS1zZXQtMngucG5nPzIiCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWdfYmVmb3Jl
X3NvdXJjZSIpLmNsaWVudFdpZHRoIGlzIDc1CitQQVNTIGN1cnJlbnRTcmNGaWxlTmFtZSgiaW1n
X2JlZm9yZV9zb3VyY2UiKSBpcyAiYmx1ZV9yZWN0LmpwZz8xIgorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidW5rbm93bl90eXBlIikuY2xpZW50V2lkdGggaXMgMTYwMAorUEFTUyBjdXJy
ZW50U3JjRmlsZU5hbWUoInVua25vd25fdHlwZSIpIGlzICJpbWFnZS1zZXQtNHgucG5nPzMiCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdmdfdHlwZSIpLmNsaWVudFdpZHRoIGlzIDgw
MAorUEFTUyBjdXJyZW50U3JjRmlsZU5hbWUoInN2Z190eXBlIikgaXMgImltYWdlLXNldC0yeC5w
bmc/MiIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVtcHR5X3R5cGUiKS5jbGllbnRX
aWR0aCBpcyA4MDAKK1BBU1MgY3VycmVudFNyY0ZpbGVOYW1lKCJlbXB0eV90eXBlIikgaXMgImlt
YWdlLXNldC0yeC5wbmc/MiIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndoaXRlc3Bh
Y2VfdHlwZSIpLmNsaWVudFdpZHRoIGlzIDgwMAorUEFTUyBjdXJyZW50U3JjRmlsZU5hbWUoIndo
aXRlc3BhY2VfdHlwZSIpIGlzICJpbWFnZS1zZXQtMngucG5nPzIiCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwYXJhbWV0ZXJfdHlwZSIpLmNsaWVudFdpZHRoIGlzIDgwMAorUEFTUyBj
dXJyZW50U3JjRmlsZU5hbWUoInBhcmFtZXRlcl90eXBlIikgaXMgImltYWdlLXNldC0yeC5wbmc/
MiIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVtcHR5X3NyY3NldCIpLmNsaWVudFdp
ZHRoIGlzIDE2MDAKK1BBU1MgY3VycmVudFNyY0ZpbGVOYW1lKCJlbXB0eV9zcmNzZXQiKSBpcyAi
aW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9fc3Jj
c2V0IikuY2xpZW50V2lkdGggaXMgMTYwMAorUEFTUyBjdXJyZW50U3JjRmlsZU5hbWUoIm5vX3Ny
Y3NldCIpIGlzICJpbWFnZS1zZXQtNHgucG5nPzMiCitQQVNTIGlubmVyV2lkdGggaXMgMTIwMAor
UEFTUyBpbm5lckhlaWdodCBpcyA2MDAKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNp
bXBsZSIpLmNsaWVudFdpZHRoIGlzIDE2MDAKK1BBU1MgY3VycmVudFNyY0ZpbGVOYW1lKCJzaW1w
bGUiKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibXVsdGlwbGUiKS5jbGllbnRXaWR0aCBpcyAxNjAwCitQQVNTIGN1cnJlbnRTcmNGaWxlTmFt
ZSgibXVsdGlwbGUiKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3RoZXJfY2hpbGRyZW4iKS5jbGllbnRXaWR0aCBpcyAxNjAwCitQQVNTIGN1
cnJlbnRTcmNGaWxlTmFtZSgib3RoZXJfY2hpbGRyZW4iKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8z
IgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nX2JlZm9yZV9zb3VyY2UiKS5jbGll
bnRXaWR0aCBpcyA3NQorUEFTUyBjdXJyZW50U3JjRmlsZU5hbWUoImltZ19iZWZvcmVfc291cmNl
IikgaXMgImJsdWVfcmVjdC5qcGc/MSIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVu
a25vd25fdHlwZSIpLmNsaWVudFdpZHRoIGlzIDE2MDAKK1BBU1MgY3VycmVudFNyY0ZpbGVOYW1l
KCJ1bmtub3duX3R5cGUiKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3ZnX3R5cGUiKS5jbGllbnRXaWR0aCBpcyAxNjAwCitQQVNTIGN1cnJl
bnRTcmNGaWxlTmFtZSgic3ZnX3R5cGUiKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW1wdHlfdHlwZSIpLmNsaWVudFdpZHRoIGlzIDE2MDAK
K1BBU1MgY3VycmVudFNyY0ZpbGVOYW1lKCJlbXB0eV90eXBlIikgaXMgImltYWdlLXNldC00eC5w
bmc/MyIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndoaXRlc3BhY2VfdHlwZSIpLmNs
aWVudFdpZHRoIGlzIDE2MDAKK1BBU1MgY3VycmVudFNyY0ZpbGVOYW1lKCJ3aGl0ZXNwYWNlX3R5
cGUiKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGFyYW1ldGVyX3R5cGUiKS5jbGllbnRXaWR0aCBpcyAxNjAwCitQQVNTIGN1cnJlbnRTcmNG
aWxlTmFtZSgicGFyYW1ldGVyX3R5cGUiKSBpcyAiaW1hZ2Utc2V0LTR4LnBuZz8zIgorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW1wdHlfc3Jjc2V0IikuY2xpZW50V2lkdGggaXMgMTYw
MAorUEFTUyBjdXJyZW50U3JjRmlsZU5hbWUoImVtcHR5X3NyY3NldCIpIGlzICJpbWFnZS1zZXQt
NHgucG5nPzMiCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub19zcmNzZXQiKS5jbGll
bnRXaWR0aCBpcyAxNjAwCitQQVNTIGN1cnJlbnRTcmNGaWxlTmFtZSgibm9fc3Jjc2V0IikgaXMg
ImltYWdlLXNldC00eC5wbmc/MyIKKyAgIAorc29tZSB0ZXh0CisgICAgICAgICAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvcGljdHVyZS92aWV3cG9ydC1yZXNpemUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3BpY3R1cmUvdmlld3BvcnQtcmVzaXplLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3BpY3R1cmUvdmlld3BvcnQtcmVzaXplLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+CisJ
PCEtLSBBIGNhbmFyeSBpbWFnZSB0byBzZWUgdGhhdCB0aGUgdGVzdCBpcyBhY3R1YWxseSB3b3Jr
aW5nIC0tPgorCTxpbWcgaWQ9ImNhbmFyeSIgc3JjPSJyZXNvdXJjZXMvYmx1ZV9yZWN0LmpwZz8w
Ij4KKwk8IS0tIHNpbXBsZSBwaWN0dXJlIGNvbnN0cnVjdCAtLT4KKwk8cGljdHVyZT4KKwkgICAg
PHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogNDAwcHgpIiBzaXplcz0iNDAwcHgiIHNyY3NldD0i
Li4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0xeC5wbmc/MSA0MDB3LCAuLi9oaWRwaS9yZXNv
dXJjZXMvaW1hZ2Utc2V0LTJ4LnBuZz8xIDgwMHcsCisJICAgICAgICByZXNvdXJjZXMvaW1hZ2Ut
c2V0LTR4LnBuZz8xIDE2MDB3Ij4KKwkgICAgPHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogODAw
cHgpIiBzaXplcz0iODAwcHgiIHNyY3NldD0iLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0x
eC5wbmc/MiA0MDB3LCAuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTJ4LnBuZz8yIDgwMHcs
CisJICAgICAgICByZXNvdXJjZXMvaW1hZ2Utc2V0LTR4LnBuZz8yIDE2MDB3Ij4KKwkgICAgPHNv
dXJjZSBtZWRpYT0iKG1heC13aWR0aDogMTYwMHB4KSIgc2l6ZXM9IjE2MDBweCIgc3Jjc2V0PSIu
Li9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8zIDQwMHcsIC4uL2hpZHBpL3Jlc291
cmNlcy9pbWFnZS1zZXQtMngucG5nPzMgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1z
ZXQtNHgucG5nPzMgMTYwMHciPgorCSAgICA8aW1nIGlkPSJzaW1wbGUiIHNyYz0icmVzb3VyY2Vz
L2JsdWVfcmVjdC5qcGc/MSI+CisJPC9waWN0dXJlPgorCTwhLS0gTXVsdGlwbGUgaW1nIGVsZW1l
bnRzIC0tPgorCTxwaWN0dXJlPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA0MDBw
eCkiIHNpemVzPSI0MDBweCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4
LnBuZz8xIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngucG5nPzEgODAwdywK
KwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQtNHgucG5nPzEgMTYwMHciPgorCSAgICA8c291
cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA4MDBweCkiIHNpemVzPSI4MDBweCIgc3Jjc2V0PSIuLi9o
aWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8yIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNl
cy9pbWFnZS1zZXQtMngucG5nPzIgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQt
NHgucG5nPzIgMTYwMHciPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiAxNjAwcHgp
IiBzaXplcz0iMTYwMHB4IiBzcmNzZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgu
cG5nPzMgNDAwdywgLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MyA4MDB3LAor
CSAgICAgICAgcmVzb3VyY2VzL2ltYWdlLXNldC00eC5wbmc/MyAxNjAwdyI+CisJICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvYmx1ZV9yZWN0LmpwZz8xIj4KKwkgICAgPGltZyBpZD0ibXVsdGlwbGUi
IHNyYz0icmVzb3VyY2VzL2JsdWVfcmVjdC5qcGc/MSI+CisJPC9waWN0dXJlPgorCTwhLS0gbm9u
LXNvdXJjZSBjaGlsZHJlbiAtIHNob3VsZCBiZSBpZ25vcmVkLS0+CisJPHBpY3R1cmU+CisJICAg
IDxkaXY+c29tZSB0ZXh0PC9kaXY+CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDQw
MHB4KSIgc2l6ZXM9IjQwMHB4IiBzcmNzZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQt
MXgucG5nPzEgNDAwdywgLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MSA4MDB3
LAorCSAgICAgICAgcmVzb3VyY2VzL2ltYWdlLXNldC00eC5wbmc/MSAxNjAwdyI+CisJICAgIDxz
b3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDgwMHB4KSIgc2l6ZXM9IjgwMHB4IiBzcmNzZXQ9Ii4u
L2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzIgNDAwdywgLi4vaGlkcGkvcmVzb3Vy
Y2VzL2ltYWdlLXNldC0yeC5wbmc/MiA4MDB3LAorCSAgICAgICAgcmVzb3VyY2VzL2ltYWdlLXNl
dC00eC5wbmc/MiAxNjAwdyI+CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDE2MDBw
eCkiIHNpemVzPSIxNjAwcHgiIHNyY3NldD0iLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0x
eC5wbmc/MyA0MDB3LCAuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTJ4LnBuZz8zIDgwMHcs
CisJICAgICAgICByZXNvdXJjZXMvaW1hZ2Utc2V0LTR4LnBuZz8zIDE2MDB3Ij4KKwkgICAgPGlt
ZyBpZD0ib3RoZXJfY2hpbGRyZW4iIHNyYz0icmVzb3VyY2VzL2JsdWVfcmVjdC5qcGc/MSI+CisJ
PC9waWN0dXJlPgorCTwhLS0gaW1nIGJlZm9yZSBpdHMgc291cmNlIHNpYmxpbmdzIC0gc2hvdWxk
IGlnbm9yZSBpdHMgc2libGluZ3MgLS0+CisJPHBpY3R1cmU+CisJICAgIDxpbWcgaWQ9ImltZ19i
ZWZvcmVfc291cmNlIiBzcmM9InJlc291cmNlcy9ibHVlX3JlY3QuanBnPzEiPgorCSAgICA8c291
cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA0MDBweCkiIHNpemVzPSI0MDBweCIgc3Jjc2V0PSIuLi9o
aWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8xIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNl
cy9pbWFnZS1zZXQtMngucG5nPzEgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQt
NHgucG5nPzEgMTYwMHciPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA4MDBweCki
IHNpemVzPSI4MDBweCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBu
Zz8yIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngucG5nPzIgODAwdywKKwkg
ICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQtNHgucG5nPzIgMTYwMHciPgorCSAgICA8c291cmNl
IG1lZGlhPSIobWF4LXdpZHRoOiAxNjAwcHgpIiBzaXplcz0iMTYwMHB4IiBzcmNzZXQ9Ii4uL2hp
ZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzMgNDAwdywgLi4vaGlkcGkvcmVzb3VyY2Vz
L2ltYWdlLXNldC0yeC5wbmc/MyA4MDB3LAorCSAgICAgICAgcmVzb3VyY2VzL2ltYWdlLXNldC00
eC5wbmc/MyAxNjAwdyI+CisJPC9waWN0dXJlPgorCTwhLS0gc291cmNlIHdpdGggdW5rbm93biB0
eXBlIC0gc2hvdWxkIGJlIGlnbm9yZWQgLS0+CisJPHBpY3R1cmU+CisJICAgIDxzb3VyY2UgbWVk
aWE9IihtYXgtd2lkdGg6IDQwMHB4KSIgc2l6ZXM9IjQwMHB4IiBzcmNzZXQ9Ii4uL2hpZHBpL3Jl
c291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzEgNDAwdywgLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdl
LXNldC0yeC5wbmc/MSA4MDB3LAorCSAgICAgICAgcmVzb3VyY2VzL2ltYWdlLXNldC00eC5wbmc/
MSAxNjAwdyI+CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDgwMHB4KSIgdHlwZT0i
aW1hZ2Uvbm9uc2Vuc2UiIHNpemVzPSI4MDBweCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMv
aW1hZ2Utc2V0LTF4LnBuZz8yIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngu
cG5nPzIgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQtNHgucG5nPzIgMTYwMHci
PgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiAxNjAwcHgpIiBzaXplcz0iMTYwMHB4
IiBzcmNzZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzMgNDAwdywgLi4v
aGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MyA4MDB3LAorCSAgICAgICAgcmVzb3Vy
Y2VzL2ltYWdlLXNldC00eC5wbmc/MyAxNjAwdyI+CisJICAgIDxpbWcgaWQ9InVua25vd25fdHlw
ZSIgc3JjPSJyZXNvdXJjZXMvYmx1ZV9yZWN0LmpwZz8xIj4KKwk8L3BpY3R1cmU+CisJPCEtLSBT
Vkcgc291cmNlIC0gc2hvdWxkIG5vdCBiZSBpZ25vcmVkIC0tPgorCTxwaWN0dXJlPgorCSAgICA8
c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA0MDBweCkiIHNpemVzPSI0MDBweCIgc3Jjc2V0PSIu
Li9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8xIDQwMHcsIC4uL2hpZHBpL3Jlc291
cmNlcy9pbWFnZS1zZXQtMngucG5nPzEgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1z
ZXQtNHgucG5nPzEgMTYwMHciPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA4MDBw
eCkiIHR5cGU9ImltYWdlL3N2Zyt4bWwiIHNpemVzPSI4MDBweCIgc3Jjc2V0PSIuLi9oaWRwaS9y
ZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8yIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNlcy9pbWFn
ZS1zZXQtMngucG5nPzIgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQtNHgucG5n
PzIgMTYwMHciPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiAxNjAwcHgpIiBzaXpl
cz0iMTYwMHB4IiBzcmNzZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzMg
NDAwdywgLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MyA4MDB3LAorCSAgICAg
ICAgcmVzb3VyY2VzL2ltYWdlLXNldC00eC5wbmc/MyAxNjAwdyI+CisJICAgIDxpbWcgaWQ9InN2
Z190eXBlIiBzcmM9InJlc291cmNlcy9ibHVlX3JlY3QuanBnPzEiPgorCTwvcGljdHVyZT4KKwk8
IS0tIEVtcHR5IHR5cGUgLSBzaG91bGQgbm90IGJlIGlnbm9yZWQgLS0+CisJPHBpY3R1cmU+CisJ
ICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDQwMHB4KSIgc2l6ZXM9IjQwMHB4IiBzcmNz
ZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzEgNDAwdywgLi4vaGlkcGkv
cmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MSA4MDB3LAorCSAgICAgICAgcmVzb3VyY2VzL2lt
YWdlLXNldC00eC5wbmc/MSAxNjAwdyI+CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6
IDgwMHB4KSIgdHlwZT0iIiBzaXplcz0iODAwcHgiIHNyY3NldD0iLi4vaGlkcGkvcmVzb3VyY2Vz
L2ltYWdlLXNldC0xeC5wbmc/MiA0MDB3LCAuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTJ4
LnBuZz8yIDgwMHcsCisJICAgICAgICByZXNvdXJjZXMvaW1hZ2Utc2V0LTR4LnBuZz8yIDE2MDB3
Ij4KKwkgICAgPHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogMTYwMHB4KSIgc2l6ZXM9IjE2MDBw
eCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8zIDQwMHcsIC4u
L2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngucG5nPzMgODAwdywKKwkgICAgICAgIHJlc291
cmNlcy9pbWFnZS1zZXQtNHgucG5nPzMgMTYwMHciPgorCSAgICA8aW1nIGlkPSJlbXB0eV90eXBl
IiBzcmM9InJlc291cmNlcy9ibHVlX3JlY3QuanBnPzEiPgorCTwvcGljdHVyZT4KKwk8IS0tIHdo
aXRlc3BhY2UgdHlwZSAtIHNob3VsZCBub3QgYmUgaWdub3JlZCAtLT4KKwk8cGljdHVyZT4KKwkg
ICAgPHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogNDAwcHgpIiBzaXplcz0iNDAwcHgiIHNyY3Nl
dD0iLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0xeC5wbmc/MSA0MDB3LCAuLi9oaWRwaS9y
ZXNvdXJjZXMvaW1hZ2Utc2V0LTJ4LnBuZz8xIDgwMHcsCisJICAgICAgICByZXNvdXJjZXMvaW1h
Z2Utc2V0LTR4LnBuZz8xIDE2MDB3Ij4KKwkgICAgPHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDog
ODAwcHgpIiB0eXBlPSIgIiBzaXplcz0iODAwcHgiIHNyY3NldD0iLi4vaGlkcGkvcmVzb3VyY2Vz
L2ltYWdlLXNldC0xeC5wbmc/MiA0MDB3LCAuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTJ4
LnBuZz8yIDgwMHcsCisJICAgICAgICByZXNvdXJjZXMvaW1hZ2Utc2V0LTR4LnBuZz8yIDE2MDB3
Ij4KKwkgICAgPHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogMTYwMHB4KSIgc2l6ZXM9IjE2MDBw
eCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8zIDQwMHcsIC4u
L2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngucG5nPzMgODAwdywKKwkgICAgICAgIHJlc291
cmNlcy9pbWFnZS1zZXQtNHgucG5nPzMgMTYwMHciPgorCSAgICA8aW1nIGlkPSJ3aGl0ZXNwYWNl
X3R5cGUiIHNyYz0icmVzb3VyY2VzL2JsdWVfcmVjdC5qcGc/MSI+CisJPC9waWN0dXJlPgorCTwh
LS0gcGFyYW1ldGVyIHR5cGUgLSBzaG91bGQgbm90IGJlIGlnbm9yZWQgLS0+CisJPHBpY3R1cmU+
CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDQwMHB4KSIgc2l6ZXM9IjQwMHB4IiBz
cmNzZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMXgucG5nPzEgNDAwdywgLi4vaGlk
cGkvcmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MSA4MDB3LAorCSAgICAgICAgcmVzb3VyY2Vz
L2ltYWdlLXNldC00eC5wbmc/MSAxNjAwdyI+CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lk
dGg6IDgwMHB4KSIgdHlwZT0iaW1hZ2UvcG5nO2JsYT1ibGEiIHNpemVzPSI4MDBweCIgc3Jjc2V0
PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8yIDQwMHcsIC4uL2hpZHBpL3Jl
c291cmNlcy9pbWFnZS1zZXQtMngucG5nPzIgODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFn
ZS1zZXQtNHgucG5nPzIgMTYwMHciPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiAx
NjAwcHgpIiBzaXplcz0iMTYwMHB4IiBzcmNzZXQ9Ii4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1z
ZXQtMXgucG5nPzMgNDAwdywgLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0yeC5wbmc/MyA4
MDB3LAorCSAgICAgICAgcmVzb3VyY2VzL2ltYWdlLXNldC00eC5wbmc/MyAxNjAwdyI+CisJICAg
IDxpbWcgaWQ9InBhcmFtZXRlcl90eXBlIiBzcmM9InJlc291cmNlcy9ibHVlX3JlY3QuanBnPzEi
PgorCTwvcGljdHVyZT4KKwk8IS0tIHNvdXJjZSB3aXRoIGVtcHR5IHNyY3NldCAtIHNob3VsZCBi
ZSBpZ25vcmVkIC0tPgorCTxwaWN0dXJlPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRo
OiA0MDBweCkiIHNpemVzPSI0MDBweCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Ut
c2V0LTF4LnBuZz8xIDQwMHcsIC4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngucG5nPzEg
ODAwdywKKwkgICAgICAgIHJlc291cmNlcy9pbWFnZS1zZXQtNHgucG5nPzEgMTYwMHciPgorCSAg
ICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA4MDBweCkiIHNpemVzPSI4MDBweCIgc3Jjc2V0
PSIsICwgICI+CisJICAgIDxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDE2MDBweCkiIHNpemVz
PSIxNjAwcHgiIHNyY3NldD0iLi4vaGlkcGkvcmVzb3VyY2VzL2ltYWdlLXNldC0xeC5wbmc/MyA0
MDB3LCAuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTJ4LnBuZz8zIDgwMHcsCisJICAgICAg
ICByZXNvdXJjZXMvaW1hZ2Utc2V0LTR4LnBuZz8zIDE2MDB3Ij4KKwkgICAgPGltZyBpZD0iZW1w
dHlfc3Jjc2V0IiBzcmM9InJlc291cmNlcy9ibHVlX3JlY3QuanBnPzEiPgorCTwvcGljdHVyZT4K
Kwk8IS0tIHNvdXJjZSB3aXRoIG5vIHNyY3NldCAtIHNob3VsZCBiZSBpZ25vcmVkIC0tPgorCTxw
aWN0dXJlPgorCSAgICA8c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA0MDBweCkiIHNpemVzPSI0
MDBweCIgc3Jjc2V0PSIuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0LTF4LnBuZz8xIDQwMHcs
IC4uL2hpZHBpL3Jlc291cmNlcy9pbWFnZS1zZXQtMngucG5nPzEgODAwdywKKwkgICAgICAgIHJl
c291cmNlcy9pbWFnZS1zZXQtNHgucG5nPzEgMTYwMHciPgorCSAgICA8c291cmNlIG1lZGlhPSIo
bWF4LXdpZHRoOiA4MDBweCkiIHNpemVzPSI4MDBweCI+CisJICAgIDxzb3VyY2UgbWVkaWE9Iiht
YXgtd2lkdGg6IDE2MDBweCkiIHNpemVzPSIxNjAwcHgiIHNyY3NldD0iLi4vaGlkcGkvcmVzb3Vy
Y2VzL2ltYWdlLXNldC0xeC5wbmc/MyA0MDB3LCAuLi9oaWRwaS9yZXNvdXJjZXMvaW1hZ2Utc2V0
LTJ4LnBuZz8zIDgwMHcsCisJICAgICAgICByZXNvdXJjZXMvaW1hZ2Utc2V0LTR4LnBuZz8zIDE2
MDB3Ij4KKwkgICAgPGltZyBpZD0ibm9fc3Jjc2V0IiBzcmM9InJlc291cmNlcy9ibHVlX3JlY3Qu
anBnPzEiPgorCTwvcGljdHVyZT4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1cnJlbnRTcmNI
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZXNpemUtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBwaWN0dXJlcyBw
cm9wZXJseSB1cGRhdGUgd2hlbiB0aGUgdmlld3BvcnQgY2hhbmdlcyBzaXplLiIpOworc3RhbmRh
cmRSZXNpemVUZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFdpZHRo
ID0gaW5uZXJXaWR0aCA+IDgwMCA/ICcxNjAwJyA6ICc4MDAnCisgICAgICAgICAgICB2YXIgZXhw
ZWN0ZWRJbWFnZSA9IGlubmVyV2lkdGggPiA4MDAgPyAnImltYWdlLXNldC00eC5wbmc/MyInIDog
JyJpbWFnZS1zZXQtMngucG5nPzIiJworICAgICAgICAgICAgCisgICAgICAgICAgICBzaG91bGRC
ZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpbXBsZSIpLmNsaWVudFdpZHRoJywgZXhwZWN0
ZWRXaWR0aCk7CisJICAgICAgICBzaG91bGRCZSgnY3VycmVudFNyY0ZpbGVOYW1lKCJzaW1wbGUi
KScsIGV4cGVjdGVkSW1hZ2UpOworCSAgICAgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJtdWx0aXBsZSIpLmNsaWVudFdpZHRoJywgZXhwZWN0ZWRXaWR0aCk7CisJICAgICAg
ICBzaG91bGRCZSgnY3VycmVudFNyY0ZpbGVOYW1lKCJtdWx0aXBsZSIpJywgZXhwZWN0ZWRJbWFn
ZSk7CisJICAgICAgICBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm90aGVyX2No
aWxkcmVuIikuY2xpZW50V2lkdGgnLCBleHBlY3RlZFdpZHRoKTsKKwkgICAgICAgIHNob3VsZEJl
KCdjdXJyZW50U3JjRmlsZU5hbWUoIm90aGVyX2NoaWxkcmVuIiknLCBleHBlY3RlZEltYWdlKTsK
KwkgICAgICAgIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nX2JlZm9yZV9z
b3VyY2UiKS5jbGllbnRXaWR0aCcsICc3NScpOworCSAgICAgICAgc2hvdWxkQmUoJ2N1cnJlbnRT
cmNGaWxlTmFtZSgiaW1nX2JlZm9yZV9zb3VyY2UiKScsICciYmx1ZV9yZWN0LmpwZz8xIicpOwor
CSAgICAgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1bmtub3duX3R5cGUi
KS5jbGllbnRXaWR0aCcsICcxNjAwJyk7CisJICAgICAgICBzaG91bGRCZSgnY3VycmVudFNyY0Zp
bGVOYW1lKCJ1bmtub3duX3R5cGUiKScsICciaW1hZ2Utc2V0LTR4LnBuZz8zIicpOworICAgICAg
ICAgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdmdfdHlwZSIpLmNsaWVu
dFdpZHRoJywgZXhwZWN0ZWRXaWR0aCk7CisJICAgICAgICBzaG91bGRCZSgnY3VycmVudFNyY0Zp
bGVOYW1lKCJzdmdfdHlwZSIpJywgZXhwZWN0ZWRJbWFnZSk7CisJICAgICAgICBzaG91bGRCZSgn
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVtcHR5X3R5cGUiKS5jbGllbnRXaWR0aCcsIGV4cGVj
dGVkV2lkdGgpOworCSAgICAgICAgc2hvdWxkQmUoJ2N1cnJlbnRTcmNGaWxlTmFtZSgiZW1wdHlf
dHlwZSIpJywgZXhwZWN0ZWRJbWFnZSk7CisJICAgICAgICBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIndoaXRlc3BhY2VfdHlwZSIpLmNsaWVudFdpZHRoJywgZXhwZWN0ZWRXaWR0
aCk7CisJICAgICAgICBzaG91bGRCZSgnY3VycmVudFNyY0ZpbGVOYW1lKCJ3aGl0ZXNwYWNlX3R5
cGUiKScsIGV4cGVjdGVkSW1hZ2UpOworCSAgICAgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJwYXJhbWV0ZXJfdHlwZSIpLmNsaWVudFdpZHRoJywgZXhwZWN0ZWRXaWR0aCk7
CisJICAgICAgICBzaG91bGRCZSgnY3VycmVudFNyY0ZpbGVOYW1lKCJwYXJhbWV0ZXJfdHlwZSIp
JywgZXhwZWN0ZWRJbWFnZSk7CisJICAgICAgICBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImVtcHR5X3NyY3NldCIpLmNsaWVudFdpZHRoJywgJzE2MDAnKTsKKwkgICAgICAgIHNo
b3VsZEJlKCdjdXJyZW50U3JjRmlsZU5hbWUoImVtcHR5X3NyY3NldCIpJywgJyJpbWFnZS1zZXQt
NHgucG5nPzMiJyk7CisJICAgICAgICBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im5vX3NyY3NldCIpLmNsaWVudFdpZHRoJywgJzE2MDAnKTsKKwkgICAgICAgIHNob3VsZEJlKCdj
dXJyZW50U3JjRmlsZU5hbWUoIm5vX3NyY3NldCIpJywgJyJpbWFnZS1zZXQtNHgucG5nPzMiJyk7
CisgICAgfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcGljdHVyZS9yZXNv
dXJjZXMvcmVzaXplLXRlc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9waWN0
dXJlL3Jlc291cmNlcy9yZXNpemUtdGVzdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvcGljdHVyZS9yZXNvdXJjZXMvcmVzaXplLXRlc3QuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1OCBAQAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0
aW9uIHJlc2l6ZVRlc3Qoc2l6ZXMsIHRlc3RGdW5jdGlvbikKK3sKKyAgICB2YXIgd2lkdGhEZWx0
YTsKKyAgICB2YXIgaGVpZ2h0RGVsdGE7CisKKyAgICBmdW5jdGlvbiBwZXJmb3JtTmV4dFJlc2l6
ZSgpCisgICAgeworICAgICAgICBpZiAoc2l6ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICByZXNp
emVUbyhzaXplc1swXVswXSArIHdpZHRoRGVsdGEsIHNpemVzWzBdWzFdICsgaGVpZ2h0RGVsdGEp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlbW92ZUV2ZW50TGlz
dGVuZXIoInJlc2l6ZSIsIHJlc2l6ZUhhbmRsZXIpOworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9OworCisg
ICAgZnVuY3Rpb24gcmVzaXplSGFuZGxlcigpCisgICAgeworICAgICAgICB2YXIgbmV4dFNpemUg
PSBzaXplcy5zaGlmdCgpOworCisgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oImlubmVyV2lkdGgi
LCBuZXh0U2l6ZVswXSk7CisgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oImlubmVySGVpZ2h0Iiwg
bmV4dFNpemVbMV0pOworCisgICAgICAgIHRlc3RGdW5jdGlvbigpOworCisgICAgICAgIHBlcmZv
cm1OZXh0UmVzaXplKCk7CisgICAgfTsKKworICAgIGNvbnN0IHdhcm11cFdpZHRoID0gb3V0ZXJX
aWR0aCArIDEzOworCisgICAgZnVuY3Rpb24gd2FybXVwRG9uZSgpCisgICAgeworICAgICAgICBp
ZiAob3V0ZXJXaWR0aCAhPSB3YXJtdXBXaWR0aCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgd2lkdGhEZWx0YSA9IG91dGVyV2lkdGggLSBpbm5lcldpZHRoOworICAgICAgICBoZWlnaHRE
ZWx0YSA9IG91dGVySGVpZ2h0IC0gaW5uZXJIZWlnaHQ7CisgICAgICAgIHJlbW92ZUV2ZW50TGlz
dGVuZXIoInJlc2l6ZSIsIHdhcm11cERvbmUpOworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHJlc2l6ZUhhbmRs
ZXIpOworICAgICAgICAgICAgcGVyZm9ybU5leHRSZXNpemUoKTsKKyAgICAgICAgfSwgMCk7Cisg
ICAgfQorCisgICAgYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgd2FybXVwRG9uZSk7CisgICAg
c2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJlc2l6ZVRvKHdhcm11cFdpZHRoLCBv
dXRlckhlaWdodCk7CisgICAgfSwgMCk7Cit9CisKK2Z1bmN0aW9uIHN0YW5kYXJkUmVzaXplVGVz
dCh0ZXN0RnVuY3Rpb24pCit7CisgICAgcmVzaXplVGVzdChbWzgwMCwgNjAwXSwgWzEyMDAsIDYw
MF1dLCB0ZXN0RnVuY3Rpb24pOworfQo=
</data>
<flag name="review"
          id="292078"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>