<?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>17301</bug_id>
          
          <creation_ts>2008-02-10 17:32:56 -0800</creation_ts>
          <short_desc>(Acid3) width/height media queries need to use the correct viewport and update on viewport-resize</short_desc>
          <delta_ts>2008-02-21 16:16:34 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>17064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>70164</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-10 17:32:56 -0800</bug_when>
    <thetext>width/height media queries are always being evaluated with respect to the top-level frame.  This is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70165</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-10 17:33:44 -0800</bug_when>
    <thetext>This is the reason test 46 of Acid3 now fails.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70167</commentid>
    <comment_count>2</comment_count>
      <attachid>19055</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-10 17:43:48 -0800</bug_when>
    <thetext>Created attachment 19055
Work in progress

This patch gets us further in the media queries section.  However, we fail once the viewport is dynamically resized.  In order to pass we&apos;ll need to record the fact that we are &quot;viewport-sensitive&quot; and force a complete style recalc on every resize (ugh).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71427</commentid>
    <comment_count>3</comment_count>
      <attachid>19262</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-21 14:58:53 -0800</bug_when>
    <thetext>Created attachment 19262
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71435</commentid>
    <comment_count>4</comment_count>
      <attachid>19262</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-02-21 16:01:32 -0800</bug_when>
    <thetext>Comment on attachment 19262
Patch for review

r=me with a testcase -- text only if possible :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71436</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-21 16:16:34 -0800</bug_when>
    <thetext>Fixed in r30466-7.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19055</attachid>
            <date>2008-02-10 17:43:48 -0800</date>
            <delta_ts>2008-02-21 14:58:53 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>15767</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDMwMTIzKQorKysgY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNyArMjgwLDcgQEAgQ1NTU3R5bGVTZWxlY3Rvcjo6
Q1NTU3R5bGVTZWxlY3RvcihEb2N1bQogCiAgICAgaWYgKG1fcm9vdERlZmF1bHRTdHlsZSAmJiB2
aWV3KSB7CiAgICAgICAgIGRlbGV0ZSBtX21lZGl1bTsKLSAgICAgICAgbV9tZWRpdW0gPSBuZXcg
TWVkaWFRdWVyeUV2YWx1YXRvcih2aWV3LT5tZWRpYVR5cGUoKSwgdmlldy0+ZnJhbWUoKS0+cGFn
ZSgpLCBtX3Jvb3REZWZhdWx0U3R5bGUpOworICAgICAgICBtX21lZGl1bSA9IG5ldyBNZWRpYVF1
ZXJ5RXZhbHVhdG9yKHZpZXctPm1lZGlhVHlwZSgpLCB2aWV3LT5mcmFtZSgpLCBtX3Jvb3REZWZh
dWx0U3R5bGUpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHN1Y2tzISBUaGUgdXNlciBz
aGVldCBpcyByZXBhcnNlZCBldmVyeSB0aW1lIQpJbmRleDogY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAkocmV2aXNp
b24gMzAxMjMpCisrKyBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIE1lZGlhRmVhdHVyZU5hbWVzOwogCiBl
bnVtIE1lZGlhRmVhdHVyZVByZWZpeCB7IE1pblByZWZpeCwgTWF4UHJlZml4LCBOb1ByZWZpeCB9
OwogCi10eXBlZGVmIGJvb2wgKCpFdmFsRnVuYykoQ1NTVmFsdWUqLCBSZW5kZXJTdHlsZSosIFBh
Z2UqLCAgTWVkaWFGZWF0dXJlUHJlZml4KTsKK3R5cGVkZWYgYm9vbCAoKkV2YWxGdW5jKShDU1NW
YWx1ZSosIFJlbmRlclN0eWxlKiwgRnJhbWUqLCAgTWVkaWFGZWF0dXJlUHJlZml4KTsKIHR5cGVk
ZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgRXZhbEZ1bmM+IEZ1bmN0aW9uTWFwOwogc3Rh
dGljIEZ1bmN0aW9uTWFwKiBnRnVuY3Rpb25NYXA7CiAKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGlj
IEZ1bmN0aW9uTWFwKiBnRnVuY3Rpb25NYXA7CiAgKi8KIAogTWVkaWFRdWVyeUV2YWx1YXRvcjo6
TWVkaWFRdWVyeUV2YWx1YXRvcihib29sIG1lZGlhRmVhdHVyZVJlc3VsdCkKLSAgICA6IG1fcGFn
ZSgwKQorICAgIDogbV9mcmFtZSgwKQogICAgICwgbV9zdHlsZSgwKQogICAgICwgbV9leHBSZXN1
bHQobWVkaWFGZWF0dXJlUmVzdWx0KQogewpAQCAtNzUsNyArNzUsNyBAQCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6OiBNZWRp
YVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIGJvb2wgbWVk
aWFGZWF0dXJlUmVzdWx0KQogICAgIDogbV9tZWRpYVR5cGUoYWNjZXB0ZWRNZWRpYVR5cGUpCi0g
ICAgLCBtX3BhZ2UoMCkKKyAgICAsIG1fZnJhbWUoMCkKICAgICAsIG1fc3R5bGUoMCkKICAgICAs
IG1fZXhwUmVzdWx0KG1lZGlhRmVhdHVyZVJlc3VsdCkKIHsKQEAgLTgzLDE3ICs4MywxNyBAQCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yOjogTWVkaWFRdWVyeUV2YWx1YXRvCiAKIE1lZGlhUXVlcnlFdmFs
dWF0b3I6OiBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IGNoYXIqIGFjY2VwdGVkTWVkaWFUeXBl
LCBib29sIG1lZGlhRmVhdHVyZVJlc3VsdCkKICAgICA6IG1fbWVkaWFUeXBlKGFjY2VwdGVkTWVk
aWFUeXBlKQotICAgICwgbV9wYWdlKDApCisgICAgLCBtX2ZyYW1lKDApCiAgICAgLCBtX3N0eWxl
KDApCiAgICAgLCBtX2V4cFJlc3VsdChtZWRpYUZlYXR1cmVSZXN1bHQpCiB7CiB9CiAKLU1lZGlh
UXVlcnlFdmFsdWF0b3I6OiBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0
ZWRNZWRpYVR5cGUsIFBhZ2UqIHBhZ2UsIFJlbmRlclN0eWxlKiBzdHlsZSkKK01lZGlhUXVlcnlF
dmFsdWF0b3I6OiBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRp
YVR5cGUsIEZyYW1lKiBmcmFtZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9tZWRpYVR5
cGUoYWNjZXB0ZWRNZWRpYVR5cGUubG93ZXIoKSkKLSAgICAsIG1fcGFnZShwYWdlKQorICAgICwg
bV9mcmFtZShmcmFtZSkKICAgICAsIG1fc3R5bGUoc3R5bGUpCi0gICAgLCBtX2V4cFJlc3VsdChm
YWxzZSkgLy8gZG9lc24ndCBtYXR0ZXIgd2hlbiB3ZSBoYXZlIG1fcGFnZSBhbmQgbV9zdHlsZQor
ICAgICwgbV9leHBSZXN1bHQoZmFsc2UpIC8vIGRvZXNuJ3QgbWF0dGVyIHdoZW4gd2UgaGF2ZSBt
X2ZyYW1lIGFuZCBtX3N0eWxlCiB7CiB9CiAKQEAgLTIwMCw5ICsyMDAsOSBAQCBzdGF0aWMgYm9v
bCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1z
dGF0aWMgYm9vbCBjb2xvck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMg
Ym9vbCBjb2xvck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKLSAgICBpbnQg
Yml0c1BlckNvbXBvbmVudCA9IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KHBhZ2UtPm1haW5GcmFt
ZSgpLT52aWV3KCkpOworICAgIGludCBiaXRzUGVyQ29tcG9uZW50ID0gc2NyZWVuRGVwdGhQZXJD
b21wb25lbnQoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CiAgICAgZmxvYXQg
bnVtYmVyOwogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIG51bWJlclZhbHVlKHZhbHVl
LCBudW1iZXIpICYmIGNvbXBhcmVWYWx1ZShiaXRzUGVyQ29tcG9uZW50LCBzdGF0aWNfY2FzdDxp
bnQ+KG51bWJlciksIG9wKTsKQEAgLTIxMCwxOCArMjEwLDE4IEBAIHN0YXRpYyBib29sIGNvbG9y
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWwKICAgICByZXR1cm4gYml0c1BlckNvbXBvbmVudCAhPSAw
OwogfQogCi1zdGF0aWMgYm9vbCBtb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSog
dmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZp
eCBvcCkKK3N0YXRpYyBib29sIG1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVm
aXggb3ApCiB7Ci0gICAgaWYgKCFzY3JlZW5Jc01vbm9jaHJvbWUocGFnZS0+bWFpbkZyYW1lKCkt
PnZpZXcoKSkpCisgICAgaWYgKCFzY3JlZW5Jc01vbm9jaHJvbWUoZnJhbWUtPnBhZ2UoKS0+bWFp
bkZyYW1lKCktPnZpZXcoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBj
b2xvck1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBwYWdlLCBvcCk7CisgICAgcmV0dXJu
IGNvbG9yTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBvcCk7CiB9CiAKLXN0
YXRpYyBib29sIGRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4
IG9wKQorc3RhdGljIGJvb2wgZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVh
dHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgRmxvYXRSZWN0IHNn
ID0gc2NyZWVuUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICAgICAgRmxvYXRS
ZWN0IHNnID0gc2NyZWVuUmVjdChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsK
ICAgICAgICAgaW50IGggPSAwOwogICAgICAgICBpbnQgdiA9IDA7CiAgICAgICAgIGlmIChwYXJz
ZUFzcGVjdFJhdGlvKHZhbHVlLCBoLCB2KSkKQEAgLTIzNCwxNSArMjM0LDE1IEBAIHN0YXRpYyBi
b29sIGRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
c3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAq
dmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgTWVkaWFGZWF0dXJlUHJlZml4
IG9wKQorc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1
cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKQotICAgICAgICByZXR1cm4gdmFsdWUtPmlz
UHJpbWl0aXZlVmFsdWUoKSAmJiBjb21wYXJlVmFsdWUocGFnZS0+Y2hyb21lKCktPnNjYWxlRmFj
dG9yKCksIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRGbG9hdFZh
bHVlKCksIG9wKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYg
Y29tcGFyZVZhbHVlKGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zY2FsZUZhY3RvcigpLCBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0RmxvYXRWYWx1ZSgpLCBvcCk7
CiAKLSAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPnNjYWxlRmFjdG9yKCkgIT0gMDsKKyAgICBy
ZXR1cm4gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnNjYWxlRmFjdG9yKCkgIT0gMDsKIH0KIAot
c3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMg
Ym9vbCBncmlkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBz
dHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIC8vIGlm
IG91dHB1dCBkZXZpY2UgaXMgYml0bWFwLCBncmlkOiAwID09IHRydWUKICAgICAvLyBhc3N1bWUg
d2UgaGF2ZSBiaXRtYXAgZGV2aWNlCkBAIC0yNTIsMTAgKzI1MiwxMCBAQCBzdGF0aWMgYm9vbCBn
cmlkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0
aWMgYm9vbCBkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJl
bmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3N0
YXRpYyBib29sIGRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggb3Ap
CiB7CiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVlblJlY3Qo
cGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CisgICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVl
blJlY3QoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CiAgICAgICAgIHJldHVy
biB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxp
bnQ+KHNnLmhlaWdodCgpKSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkt
PmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUpLCBvcCk7CiAgICAgfQogICAgIC8vICh7LG1pbi0sbWF4
LX1kZXZpY2UtaGVpZ2h0KQpAQCAtMjYzLDEwICsyNjMsMTAgQEAgc3RhdGljIGJvb2wgZGV2aWNl
X2hlaWdodE1lZGlhRmVhdHVyZUV2YQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorc3RhdGljIGJv
b2wgZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0
eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAg
IGlmICh2YWx1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2cgPSBzY3JlZW5SZWN0KHBhZ2UtPm1h
aW5GcmFtZSgpLT52aWV3KCkpOworICAgICAgICBGbG9hdFJlY3Qgc2cgPSBzY3JlZW5SZWN0KGZy
YW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpOwogICAgICAgICByZXR1cm4gdmFsdWUt
PmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50PihzZy53
aWR0aCgpKSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVM
ZW5ndGhJbnQoc3R5bGUpLCBvcCk7CiAgICAgfQogICAgIC8vICh7LG1pbi0sbWF4LX1kZXZpY2Ut
d2lkdGgpCkBAIC0yNzQsOSArMjc0LDkgQEAgc3RhdGljIGJvb2wgZGV2aWNlX3dpZHRoTWVkaWFG
ZWF0dXJlRXZhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBoZWlnaHRNZWRp
YUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBw
YWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorc3RhdGljIGJvb2wgaGVpZ2h0TWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1l
LCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewotICAgIEZyYW1lVmlldyogdmlldyA9IHBhZ2Ut
Pm1haW5GcmFtZSgpLT52aWV3KCk7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXco
KTsKICAgICAKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmltaXRp
dmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZSh2aWV3LT52aXNpYmxlSGVpZ2h0KCksIHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxlKSwg
b3ApOwpAQCAtMjg0LDkgKzI4NCw5IEBAIHN0YXRpYyBib29sIGhlaWdodE1lZGlhRmVhdHVyZUV2
YWwoQ1NTVmEKICAgICByZXR1cm4gdmlldy0+dmlzaWJsZUhlaWdodCgpICE9IDA7CiB9CiAKLXN0
YXRpYyBib29sIHdpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0
eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3N0YXRpYyBi
b29sIHdpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBz
dHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewotICAgIEZyYW1l
VmlldyogdmlldyA9IHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCk7CisgICAgRnJhbWVWaWV3KiB2
aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICAKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVy
biB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZSh2aWV3LT52aXNpYmxl
V2lkdGgoKSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVM
ZW5ndGhJbnQoc3R5bGUpLCBvcCk7CkBAIC0yOTYsODQgKzI5Niw4NCBAQCBzdGF0aWMgYm9vbCB3
aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsCiAKIC8vIHJlc3Qgb2YgdGhlIGZ1bmN0aW9ucyBh
cmUgdHJhbXBvbGluZXMgd2hpY2ggc2V0IHRoZSBwcmVmaXggYWNjb3JkaW5nIHRvIHRoZSBtZWRp
YSBmZWF0dXJlIGV4cHJlc3Npb24gdXNlZAogCi1zdGF0aWMgYm9vbCBtaW5fY29sb3JNZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdl
LCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1pbl9jb2xvck1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGNvbG9yTWVk
aWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1pblByZWZpeCk7CisgICAgcmV0dXJu
IGNvbG9yTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOwog
fQogCi1zdGF0aWMgYm9vbCBtYXhfY29sb3JNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8q
b3AqLykKK3N0YXRpYyBib29sIG1heF9jb2xvck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZp
eCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGNvbG9yTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5
bGUsIHBhZ2UsIE1heFByZWZpeCk7CisgICAgcmV0dXJuIGNvbG9yTWVkaWFGZWF0dXJlRXZhbCh2
YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtaW5fbW9u
b2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5
bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wg
bWluX21vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQogewot
ICAgIHJldHVybiBtb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2Us
IE1pblByZWZpeCk7CisgICAgcmV0dXJuIG1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKHZhbHVl
LCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1heF9tb25vY2hy
b21lTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwg
UGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtYXhf
bW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAg
cmV0dXJuIG1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4
UHJlZml4KTsKKyAgICByZXR1cm4gbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0
eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX2RldmljZV9hc3Bl
Y3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29s
IG1pbl9kZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8q
b3AqLykKIHsKLSAgICByZXR1cm4gZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwo
dmFsdWUsIHN0eWxlLCBwYWdlLCBNaW5QcmVmaXgpOworICAgIHJldHVybiBkZXZpY2VfYXNwZWN0
X3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOwog
fQogCi1zdGF0aWMgYm9vbCBtYXhfZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZl
YXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWF4X2RldmljZV9hc3BlY3RfcmF0aW9N
ZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFt
ZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQogewotICAgIHJldHVybiBkZXZp
Y2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1heFBy
ZWZpeCk7CisgICAgcmV0dXJuIGRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZh
bHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1pbl9kZXZp
Y2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0YXRp
YyBib29sIG1pbl9kZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVm
aXggLypvcCovKQogewotICAgIHJldHVybiBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVF
dmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWluUHJlZml4KTsKKyAgICByZXR1cm4gZGV2aWNlX3Bp
eGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgp
OwogfQogCi1zdGF0aWMgYm9vbCBtYXhfZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlh
RmVhdHVyZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtYXhfZGV2aWNlX3BpeGVsX3JhdGlv
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJh
bWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1cm4gZGV2
aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1heFBy
ZWZpeCk7CisgICAgcmV0dXJuIGRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwodmFs
dWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX2hlaWdo
dE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBh
Z2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWluX2hl
aWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJu
IGhlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBwYWdlLCBNaW5QcmVmaXgpOwor
ICAgIHJldHVybiBoZWlnaHRNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1p
blByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1heF9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0
dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1heF9oZWlnaHRNZWRpYUZlYXR1cmVFdmFs
KENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRp
YUZlYXR1cmVQcmVmaXggLypvcCovKQogewotICAgIHJldHVybiBoZWlnaHRNZWRpYUZlYXR1cmVF
dmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4UHJlZml4KTsKKyAgICByZXR1cm4gaGVpZ2h0TWVk
aWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCi1zdGF0
aWMgYm9vbCBtaW5fd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0
YXRpYyBib29sIG1pbl93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8p
CiB7Ci0gICAgcmV0dXJuIHdpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2Us
IE1pblByZWZpeCk7CisgICAgcmV0dXJuIHdpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5
bGUsIGZyYW1lLCBNaW5QcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtYXhfd2lkdGhNZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdl
LCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1heF93aWR0aE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIHdpZHRoTWVk
aWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1heFByZWZpeCk7CisgICAgcmV0dXJu
IHdpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwog
fQogCi1zdGF0aWMgYm9vbCBtaW5fZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFs
dWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQ
cmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWluX2RldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVF
dmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBN
ZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQogewotICAgIHJldHVybiBkZXZpY2VfaGVpZ2h0TWVk
aWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1pblByZWZpeCk7CisgICAgcmV0dXJu
IGRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblBy
ZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1heF9kZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlh
RmVhdHVyZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtYXhfZGV2aWNlX2hlaWdodE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGRldmljZV9o
ZWlnaHRNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4UHJlZml4KTsKKyAg
ICByZXR1cm4gZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFt
ZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX2RldmljZV93aWR0aE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2Us
ICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWluX2RldmljZV93aWR0
aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZy
YW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGRl
dmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBwYWdlLCBNaW5QcmVmaXgp
OworICAgIHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwg
ZnJhbWUsIE1pblByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1heF9kZXZpY2Vfd2lkdGhNZWRp
YUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBw
YWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1heF9kZXZpY2Vf
d2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQogewotICAgIHJldHVy
biBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4UHJl
Zml4KTsKKyAgICByZXR1cm4gZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5
bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCiBzdGF0aWMgdm9pZCBjcmVhdGVGdW5jdGlvbk1h
cCgpCkBAIC0zODgsNyArMzg4LDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlRnVuY3Rpb25NYXAoKQog
CiBib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWwoY29uc3QgTWVkaWFRdWVyeUV4cCogZXhw
cikgY29uc3QKIHsKLSAgICBpZiAoIW1fcGFnZSB8fCAhbV9zdHlsZSkKKyAgICBpZiAoIW1fZnJh
bWUgfHwgIW1fc3R5bGUpCiAgICAgICAgIHJldHVybiBtX2V4cFJlc3VsdDsKIAogICAgIGlmICgh
Z0Z1bmN0aW9uTWFwKQpAQCAtMzk5LDcgKzM5OSw3IEBAIGJvb2wgTWVkaWFRdWVyeUV2YWx1YXRv
cjo6ZXZhbChjb25zdCBNZWQKICAgICAvLyB1c2VkCiAgICAgRXZhbEZ1bmMgZnVuYyA9IGdGdW5j
dGlvbk1hcC0+Z2V0KGV4cHItPm1lZGlhRmVhdHVyZSgpLmltcGwoKSk7CiAgICAgaWYgKGZ1bmMp
Ci0gICAgICAgIHJldHVybiBmdW5jKGV4cHItPnZhbHVlKCksIG1fc3R5bGUsIG1fcGFnZSwgTm9Q
cmVmaXgpOworICAgICAgICByZXR1cm4gZnVuYyhleHByLT52YWx1ZSgpLCBtX3N0eWxlLCBtX2Zy
YW1lLCBOb1ByZWZpeCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgJ
KHJldmlzaW9uIDMwMTIzKQorKysgY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBhZ2U7CitjbGFzcyBGcmFtZTsKIGNsYXNzIFJlbmRl
clN0eWxlOwogY2xhc3MgTWVkaWFMaXN0OwogY2xhc3MgTWVkaWFRdWVyeUV4cDsKQEAgLTY2LDcg
KzY2LDcgQEAgcHVibGljOgogCiAgICAgLyoqIENyZWF0ZXMgZXZhbHVhdG9yIHdoaWNoIGV2YWx1
YXRlcyBmdWxsIG1lZGlhIHF1ZXJpZXMKICAgICAgKi8KLSAgICBNZWRpYVF1ZXJ5RXZhbHVhdG9y
KGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIFBhZ2UqIHBhZ2UsIFJlbmRlclN0eWxl
KiBzdHlsZSk7CisgICAgTWVkaWFRdWVyeUV2YWx1YXRvcihjb25zdCBTdHJpbmcmIGFjY2VwdGVk
TWVkaWFUeXBlLCBGcmFtZSosIFJlbmRlclN0eWxlKik7CiAKICAgICB+TWVkaWFRdWVyeUV2YWx1
YXRvcigpOwogCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTdHJp
bmcgbV9tZWRpYVR5cGU7Ci0gICAgUGFnZSogbV9wYWdlOyAvLyBub3Qgb3duZWQKKyAgICBGcmFt
ZSogbV9mcmFtZTsgLy8gbm90IG93bmVkCiAgICAgUmVuZGVyU3R5bGUqIG1fc3R5bGU7IC8vIG5v
dCBvd25lZAogICAgIGJvb2wgbV9leHBSZXN1bHQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19262</attachid>
            <date>2008-02-21 14:58:53 -0800</date>
            <delta_ts>2008-02-21 16:01:32 -0800</delta_ts>
            <desc>Patch for review</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>22451</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDMwNDY1KQorKysgY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNyArMjgxLDcgQEAgQ1NTU3R5bGVTZWxlY3Rvcjo6
Q1NTU3R5bGVTZWxlY3RvcihEb2N1bQogCiAgICAgaWYgKG1fcm9vdERlZmF1bHRTdHlsZSAmJiB2
aWV3KSB7CiAgICAgICAgIGRlbGV0ZSBtX21lZGl1bTsKLSAgICAgICAgbV9tZWRpdW0gPSBuZXcg
TWVkaWFRdWVyeUV2YWx1YXRvcih2aWV3LT5tZWRpYVR5cGUoKSwgdmlldy0+ZnJhbWUoKS0+cGFn
ZSgpLCBtX3Jvb3REZWZhdWx0U3R5bGUpOworICAgICAgICBtX21lZGl1bSA9IG5ldyBNZWRpYVF1
ZXJ5RXZhbHVhdG9yKHZpZXctPm1lZGlhVHlwZSgpLCB2aWV3LT5mcmFtZSgpLCBtX3Jvb3REZWZh
dWx0U3R5bGUpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHN1Y2tzISBUaGUgdXNlciBz
aGVldCBpcyByZXBhcnNlZCBldmVyeSB0aW1lIQpAQCAtNTE4MCw0ICs1MTgwLDE5IEBAIGJvb2wg
Q1NTU3R5bGVTZWxlY3Rvcjo6aGFzU2VsZWN0b3JGb3JBdHQKICAgICByZXR1cm4gbV9zZWxlY3Rv
ckF0dHJzLmNvbnRhaW5zKGF0dHJuYW1lLmltcGwoKSk7CiB9CiAKK3ZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YWRkVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVl
cnlFeHAqIGV4cHIsIGJvb2wgcmVzdWx0KQoreworICAgIG1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0cy5hcHBlbmQobmV3IE1lZGlhUXVlcnlSZXN1bHQoKmV4cHIsIHJlc3VsdCkp
OworfQorCitib29sIENTU1N0eWxlU2VsZWN0b3I6OmFmZmVjdGVkQnlWaWV3cG9ydENoYW5nZSgp
IGNvbnN0Cit7CisgICAgdW5zaWduZWQgcyA9IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5
UmVzdWx0cy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHM7IGkrKykgewor
ICAgICAgICBpZiAobV9tZWRpdW0tPmV2YWwoJm1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5
UmVzdWx0c1tpXS0+bV9leHByZXNzaW9uKSAhPSBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVy
eVJlc3VsdHNbaV0tPm1fcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
CShyZXZpc2lvbiAzMDQ2NSkKKysrIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgQ1NTU3R5bGVTZWxlY3Rvcl9oCiAKICNpbmNs
dWRlICJDU1NGb250U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTU1LDYgKzU2LDE4IEBAIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFz
cyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiAKK2NsYXNzIE1lZGlhUXVl
cnlSZXN1bHQKK3sKK3B1YmxpYzoKKyAgICBNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVl
cnlFeHAmIGV4cHIsIGJvb2wgcmVzdWx0KQorICAgIDogbV9leHByZXNzaW9uKGV4cHIpCisgICAg
LCBtX3Jlc3VsdChyZXN1bHQpCisgICAge30KKworICAgIE1lZGlhUXVlcnlFeHAgbV9leHByZXNz
aW9uOworICAgIGJvb2wgbV9yZXN1bHQ7Cit9OworCiAgICAgLyoqCiAgICAgICogdGhpcyBjbGFz
cyBzZWxlY3RzIGEgUmVuZGVyU3R5bGUgZm9yIGEgZ2l2ZW4gRWxlbWVudCBiYXNlZCBvbiB0aGUK
ICAgICAgKiBjb2xsZWN0aW9uIG9mIHN0eWxlc2hldHMgaXQgY29udGFpbnMuIFRoaXMgaXMganVz
dCBhIHZydHVhbCBiYXNlIGNsYXNzCkBAIC0xMjksNiArMTQyLDkgQEAgY2xhc3MgU3R5bGVkRWxl
bWVudDsKICAgICAgICAgICAgbWF0Y2hlcyB0aGUgZ2l2ZW4gRWxlbWVudCAqLwogICAgICAgICBi
b29sIGNoZWNrU2VsZWN0b3IoQ1NTU2VsZWN0b3IqKTsKIAorICAgICAgICB2b2lkIGFkZFZpZXdw
b3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdChjb25zdCBNZWRpYVF1ZXJ5RXhwKiwgYm9vbCBy
ZXN1bHQpOworICAgICAgICBib29sIGFmZmVjdGVkQnlWaWV3cG9ydENoYW5nZSgpIGNvbnN0Owor
ICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGVudW0gU2VsZWN0b3JNYXRjaCB7CiAg
ICAgICAgICAgICBTZWxlY3Rvck1hdGNoZXMgPSAwLApAQCAtMjM5LDYgKzI1NSw4IEBAIGNsYXNz
IFN0eWxlZEVsZW1lbnQ7CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qPiBtX2FkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZURlY2xzOwogICAgICAgICAK
KyAgICAgICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVk
aWFRdWVyeVJlc3VsdHM7CisKICAgICAgICAgdm9pZCBhcHBseVByb3BlcnR5KGludCBpZCwgQ1NT
VmFsdWUqKTsKIAogI2lmIEVOQUJMRShTVkcpCkluZGV4OiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCShyZXZpc2lv
biAzMDQ2NSkKKysrIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTUHJp
bWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAi
Q1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKQEAgLTUwLDcgKzUxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIE1lZGlhRmVhdHVyZU5hbWVzOwog
CiBlbnVtIE1lZGlhRmVhdHVyZVByZWZpeCB7IE1pblByZWZpeCwgTWF4UHJlZml4LCBOb1ByZWZp
eCB9OwogCi10eXBlZGVmIGJvb2wgKCpFdmFsRnVuYykoQ1NTVmFsdWUqLCBSZW5kZXJTdHlsZSos
IFBhZ2UqLCAgTWVkaWFGZWF0dXJlUHJlZml4KTsKK3R5cGVkZWYgYm9vbCAoKkV2YWxGdW5jKShD
U1NWYWx1ZSosIFJlbmRlclN0eWxlKiwgRnJhbWUqLCAgTWVkaWFGZWF0dXJlUHJlZml4KTsKIHR5
cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgRXZhbEZ1bmM+IEZ1bmN0aW9uTWFwOwog
c3RhdGljIEZ1bmN0aW9uTWFwKiBnRnVuY3Rpb25NYXA7CiAKQEAgLTY3LDcgKzY4LDcgQEAgc3Rh
dGljIEZ1bmN0aW9uTWFwKiBnRnVuY3Rpb25NYXA7CiAgKi8KIAogTWVkaWFRdWVyeUV2YWx1YXRv
cjo6TWVkaWFRdWVyeUV2YWx1YXRvcihib29sIG1lZGlhRmVhdHVyZVJlc3VsdCkKLSAgICA6IG1f
cGFnZSgwKQorICAgIDogbV9mcmFtZSgwKQogICAgICwgbV9zdHlsZSgwKQogICAgICwgbV9leHBS
ZXN1bHQobWVkaWFGZWF0dXJlUmVzdWx0KQogewpAQCAtNzUsNyArNzYsNyBAQCBNZWRpYVF1ZXJ5
RXZhbHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6OiBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIGJvb2wg
bWVkaWFGZWF0dXJlUmVzdWx0KQogICAgIDogbV9tZWRpYVR5cGUoYWNjZXB0ZWRNZWRpYVR5cGUp
Ci0gICAgLCBtX3BhZ2UoMCkKKyAgICAsIG1fZnJhbWUoMCkKICAgICAsIG1fc3R5bGUoMCkKICAg
ICAsIG1fZXhwUmVzdWx0KG1lZGlhRmVhdHVyZVJlc3VsdCkKIHsKQEAgLTgzLDE3ICs4NCwxNyBA
QCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjogTWVkaWFRdWVyeUV2YWx1YXRvCiAKIE1lZGlhUXVlcnlF
dmFsdWF0b3I6OiBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IGNoYXIqIGFjY2VwdGVkTWVkaWFU
eXBlLCBib29sIG1lZGlhRmVhdHVyZVJlc3VsdCkKICAgICA6IG1fbWVkaWFUeXBlKGFjY2VwdGVk
TWVkaWFUeXBlKQotICAgICwgbV9wYWdlKDApCisgICAgLCBtX2ZyYW1lKDApCiAgICAgLCBtX3N0
eWxlKDApCiAgICAgLCBtX2V4cFJlc3VsdChtZWRpYUZlYXR1cmVSZXN1bHQpCiB7CiB9CiAKLU1l
ZGlhUXVlcnlFdmFsdWF0b3I6OiBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNj
ZXB0ZWRNZWRpYVR5cGUsIFBhZ2UqIHBhZ2UsIFJlbmRlclN0eWxlKiBzdHlsZSkKK01lZGlhUXVl
cnlFdmFsdWF0b3I6OiBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRN
ZWRpYVR5cGUsIEZyYW1lKiBmcmFtZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9tZWRp
YVR5cGUoYWNjZXB0ZWRNZWRpYVR5cGUubG93ZXIoKSkKLSAgICAsIG1fcGFnZShwYWdlKQorICAg
ICwgbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc3R5bGUoc3R5bGUpCi0gICAgLCBtX2V4cFJlc3Vs
dChmYWxzZSkgLy8gZG9lc24ndCBtYXR0ZXIgd2hlbiB3ZSBoYXZlIG1fcGFnZSBhbmQgbV9zdHls
ZQorICAgICwgbV9leHBSZXN1bHQoZmFsc2UpIC8vIGRvZXNuJ3QgbWF0dGVyIHdoZW4gd2UgaGF2
ZSBtX2ZyYW1lIGFuZCBtX3N0eWxlCiB7CiB9CiAKQEAgLTE0MSw3ICsxNDIsMTMgQEAgYm9vbCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsKGNvbnN0IE1lZAogICAgICAgICAgICAgLy8gaXRlcmF0
ZSB0aHJvdWdoIGV4cHJlc3Npb25zLCBzdG9wIGlmIGFueSBvZiB0aGVtIGV2YWwgdG8gZmFsc2UK
ICAgICAgICAgICAgIC8vIChBTkQgc2VtYW50aWNzKQogICAgICAgICAgICAgc2l6ZV90IGogPSAw
OwotICAgICAgICAgICAgZm9yICg7IGogPCBleHBzLT5zaXplKCkgJiYgZXZhbChleHBzLT5hdChq
KSk7ICsraikgLyogZW1wdHkqLzsKKyAgICAgICAgICAgIGZvciAoOyBqIDwgZXhwcy0+c2l6ZSgp
OyArK2opIHsKKyAgICAgICAgICAgICAgICBib29sIGV4cHJSZXN1bHQgPSBldmFsKGV4cHMtPmF0
KGopKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhwcy0+YXQoaiktPmlzVmlld3BvcnREZXBlbmRl
bnQoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c3R5bGVTZWxl
Y3RvcigpLT5hZGRWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHQoZXhwcy0+YXQoaiks
IGV4cHJSZXN1bHQpOworICAgICAgICAgICAgICAgIGlmICghZXhwclJlc3VsdCkKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIGFzc3Vt
ZSB0cnVlIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LAogICAgICAgICAgICAgLy8g
b3RoZXJ3aXNlIGFzc3VtZSBmYWxzZQpAQCAtMjAwLDkgKzIwNyw5IEBAIHN0YXRpYyBib29sIG51
bWJlclZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyBib29sIGNvbG9yTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3N0YXRpYyBib29s
IGNvbG9yTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHls
ZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewotICAgIGludCBiaXRz
UGVyQ29tcG9uZW50ID0gc2NyZWVuRGVwdGhQZXJDb21wb25lbnQocGFnZS0+bWFpbkZyYW1lKCkt
PnZpZXcoKSk7CisgICAgaW50IGJpdHNQZXJDb21wb25lbnQgPSBzY3JlZW5EZXB0aFBlckNvbXBv
bmVudChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKICAgICBmbG9hdCBudW1i
ZXI7CiAgICAgaWYgKHZhbHVlKQogICAgICAgICByZXR1cm4gbnVtYmVyVmFsdWUodmFsdWUsIG51
bWJlcikgJiYgY29tcGFyZVZhbHVlKGJpdHNQZXJDb21wb25lbnQsIHN0YXRpY19jYXN0PGludD4o
bnVtYmVyKSwgb3ApOwpAQCAtMjEwLDE4ICsyMTcsMTggQEAgc3RhdGljIGJvb2wgY29sb3JNZWRp
YUZlYXR1cmVFdmFsKENTU1ZhbAogICAgIHJldHVybiBiaXRzUGVyQ29tcG9uZW50ICE9IDA7CiB9
CiAKLXN0YXRpYyBib29sIG1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQorc3RhdGljIGJvb2wgbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVl
LCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBv
cCkKIHsKLSAgICBpZiAoIXNjcmVlbklzTW9ub2Nocm9tZShwYWdlLT5tYWluRnJhbWUoKS0+dmll
dygpKSkKKyAgICBpZiAoIXNjcmVlbklzTW9ub2Nocm9tZShmcmFtZS0+cGFnZSgpLT5tYWluRnJh
bWUoKS0+dmlldygpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvbG9y
TWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIG9wKTsKKyAgICByZXR1cm4gY29s
b3JNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIG9wKTsKIH0KIAotc3RhdGlj
IGJvb2wgZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVl
LCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggb3Ap
CitzdGF0aWMgYm9vbCBkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJl
UHJlZml4IG9wKQogewogICAgIGlmICh2YWx1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2cgPSBz
Y3JlZW5SZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgICAgICBGbG9hdFJlY3Qg
c2cgPSBzY3JlZW5SZWN0KGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpOwogICAg
ICAgICBpbnQgaCA9IDA7CiAgICAgICAgIGludCB2ID0gMDsKICAgICAgICAgaWYgKHBhcnNlQXNw
ZWN0UmF0aW8odmFsdWUsIGgsIHYpKQpAQCAtMjM0LDE1ICsyNDEsMTUgQEAgc3RhdGljIGJvb2wg
ZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0
aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1
ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCBNZWRpYUZlYXR1cmVQcmVmaXggb3Ap
CitzdGF0aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVl
ICp2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVBy
ZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpCi0gICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShwYWdlLT5jaHJvbWUoKS0+c2NhbGVGYWN0b3Io
KSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldEZsb2F0VmFsdWUo
KSwgb3ApOworICAgICAgICByZXR1cm4gdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBjb21w
YXJlVmFsdWUoZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnNjYWxlRmFjdG9yKCksIHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRGbG9hdFZhbHVlKCksIG9wKTsKIAot
ICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS0+c2NhbGVGYWN0b3IoKSAhPSAwOworICAgIHJldHVy
biBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+c2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCi1zdGF0
aWMgYm9vbCBncmlkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3N0YXRpYyBib29s
IGdyaWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgLy8gaWYgb3V0
cHV0IGRldmljZSBpcyBiaXRtYXAsIGdyaWQ6IDAgPT0gdHJ1ZQogICAgIC8vIGFzc3VtZSB3ZSBo
YXZlIGJpdG1hcCBkZXZpY2UKQEAgLTI1MiwxMCArMjU5LDEwIEBAIHN0YXRpYyBib29sIGdyaWRN
ZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBi
b29sIGRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorc3RhdGlj
IGJvb2wgZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsK
ICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgRmxvYXRSZWN0IHNnID0gc2NyZWVuUmVjdChwYWdl
LT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICAgICAgRmxvYXRSZWN0IHNnID0gc2NyZWVuUmVj
dChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKICAgICAgICAgcmV0dXJuIHZh
bHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKHN0YXRpY19jYXN0PGludD4o
c2cuaGVpZ2h0KCkpLCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29t
cHV0ZUxlbmd0aEludChzdHlsZSksIG9wKTsKICAgICB9CiAgICAgLy8gKHssbWluLSxtYXgtfWRl
dmljZS1oZWlnaHQpCkBAIC0yNjMsMTAgKzI3MCwxMCBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfaGVp
Z2h0TWVkaWFGZWF0dXJlRXZhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGRl
dmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMgYm9vbCBk
ZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgaWYg
KHZhbHVlKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVlblJlY3QocGFnZS0+bWFpbkZy
YW1lKCktPnZpZXcoKSk7CisgICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVlblJlY3QoZnJhbWUt
PnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CiAgICAgICAgIHJldHVybiB2YWx1ZS0+aXNQ
cmltaXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndpZHRo
KCkpLCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSksIG9wKTsKICAgICB9CiAgICAgLy8gKHssbWluLSxtYXgtfWRldmljZS13aWR0
aCkKQEAgLTI3NCw5ICsyODEsOSBAQCBzdGF0aWMgYm9vbCBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1
cmVFdmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGhlaWdodE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2Us
ICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMgYm9vbCBoZWlnaHRNZWRpYUZlYXR1cmVF
dmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBN
ZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7Ci0gICAgRnJhbWVWaWV3KiB2aWV3ID0gcGFnZS0+bWFp
bkZyYW1lKCktPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwog
ICAgIAogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZh
bHVlKCkgJiYgY29tcGFyZVZhbHVlKHZpZXctPnZpc2libGVIZWlnaHQoKSwgc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUpLCBvcCk7
CkBAIC0yODQsOSArMjkxLDkgQEAgc3RhdGljIGJvb2wgaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChD
U1NWYQogICAgIHJldHVybiB2aWV3LT52aXNpYmxlSGVpZ2h0KCkgIT0gMDsKIH0KIAotc3RhdGlj
IGJvb2wgd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorc3RhdGljIGJvb2wg
d2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7Ci0gICAgRnJhbWVWaWV3
KiB2aWV3ID0gcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIHZpZXcg
PSBmcmFtZS0+dmlldygpOwogICAgIAogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIHZh
bHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKHZpZXctPnZpc2libGVXaWR0
aCgpLCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSksIG9wKTsKQEAgLTI5Niw4NCArMzAzLDg0IEBAIHN0YXRpYyBib29sIHdpZHRo
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWwKIAogLy8gcmVzdCBvZiB0aGUgZnVuY3Rpb25zIGFyZSB0
cmFtcG9saW5lcyB3aGljaCBzZXQgdGhlIHByZWZpeCBhY2NvcmRpbmcgdG8gdGhlIG1lZGlhIGZl
YXR1cmUgZXhwcmVzc2lvbiB1c2VkCiAKLXN0YXRpYyBib29sIG1pbl9jb2xvck1lZGlhRmVhdHVy
ZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBN
ZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWluX2NvbG9yTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1l
LCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1cm4gY29sb3JNZWRpYUZl
YXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWluUHJlZml4KTsKKyAgICByZXR1cm4gY29s
b3JNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CiB9CiAK
LXN0YXRpYyBib29sIG1heF9jb2xvck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBS
ZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCov
KQorc3RhdGljIGJvb2wgbWF4X2NvbG9yTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8q
b3AqLykKIHsKLSAgICByZXR1cm4gY29sb3JNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwg
cGFnZSwgTWF4UHJlZml4KTsKKyAgICByZXR1cm4gY29sb3JNZWRpYUZlYXR1cmVFdmFsKHZhbHVl
LCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1pbl9tb25vY2hy
b21lTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwg
UGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtaW5f
bW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAg
cmV0dXJuIG1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWlu
UHJlZml4KTsKKyAgICByZXR1cm4gbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0
eWxlLCBmcmFtZSwgTWluUHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X21vbm9jaHJvbWVN
ZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdl
KiBwYWdlLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1heF9tb25v
Y2hyb21lTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHls
ZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1
cm4gbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBwYWdlLCBNYXhQcmVm
aXgpOworICAgIHJldHVybiBtb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUs
IGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtaW5fZGV2aWNlX2FzcGVjdF9y
YXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWlu
X2RldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCov
KQogewotICAgIHJldHVybiBkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1
ZSwgc3R5bGUsIHBhZ2UsIE1pblByZWZpeCk7CisgICAgcmV0dXJuIGRldmljZV9hc3BlY3RfcmF0
aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CiB9CiAK
LXN0YXRpYyBib29sIG1heF9kZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVy
ZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtYXhfZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGRldmljZV9h
c3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4UHJlZml4
KTsKKyAgICByZXR1cm4gZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX2RldmljZV9w
aXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJv
b2wgbWluX2RldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVl
LCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAv
Km9wKi8pCiB7Ci0gICAgcmV0dXJuIGRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwo
dmFsdWUsIHN0eWxlLCBwYWdlLCBNaW5QcmVmaXgpOworICAgIHJldHVybiBkZXZpY2VfcGl4ZWxf
cmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CiB9
CiAKLXN0YXRpYyBib29sIG1heF9kZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0
dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1heF9kZXZpY2VfcGl4ZWxfcmF0aW9NZWRp
YUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSog
ZnJhbWUsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQogewotICAgIHJldHVybiBkZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4UHJlZml4
KTsKKyAgICByZXR1cm4gZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwg
c3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtaW5faGVpZ2h0TWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSog
cGFnZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtaW5faGVpZ2h0
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJh
bWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1cm4gaGVp
Z2h0TWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1pblByZWZpeCk7CisgICAg
cmV0dXJuIGhlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJl
Zml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFs
dWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQ
cmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWF4X2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlhRmVh
dHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGhlaWdodE1lZGlhRmVhdHVyZUV2YWwo
dmFsdWUsIHN0eWxlLCBwYWdlLCBNYXhQcmVmaXgpOworICAgIHJldHVybiBoZWlnaHRNZWRpYUZl
YXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKLXN0YXRpYyBi
b29sIG1pbl93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHls
ZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGlj
IGJvb2wgbWluX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0
eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsK
LSAgICByZXR1cm4gd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWlu
UHJlZml4KTsKKyAgICByZXR1cm4gd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwg
ZnJhbWUsIE1pblByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1heF93aWR0aE1lZGlhRmVhdHVy
ZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2UsICBN
ZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWF4X3dpZHRoTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1l
LCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1cm4gd2lkdGhNZWRpYUZl
YXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWF4UHJlZml4KTsKKyAgICByZXR1cm4gd2lk
dGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAK
LXN0YXRpYyBib29sIG1pbl9kZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSog
dmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVByZWZp
eCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtaW5fZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgIE1lZGlh
RmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGRldmljZV9oZWlnaHRNZWRpYUZl
YXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgcGFnZSwgTWluUHJlZml4KTsKKyAgICByZXR1cm4gZGV2
aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJlZml4
KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X2RldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBQYWdlKiBwYWdlLCAgTWVkaWFGZWF0
dXJlUHJlZml4IC8qb3AqLykKK3N0YXRpYyBib29sIG1heF9kZXZpY2VfaGVpZ2h0TWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1l
LCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1cm4gZGV2aWNlX2hlaWdo
dE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBwYWdlLCBNYXhQcmVmaXgpOworICAgIHJl
dHVybiBkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBN
YXhQcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtaW5fZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJl
RXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1l
ZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCitzdGF0aWMgYm9vbCBtaW5fZGV2aWNlX3dpZHRoTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUq
IGZyYW1lLCAgTWVkaWFGZWF0dXJlUHJlZml4IC8qb3AqLykKIHsKLSAgICByZXR1cm4gZGV2aWNl
X3dpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIHBhZ2UsIE1pblByZWZpeCk7Cisg
ICAgcmV0dXJuIGRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFt
ZSwgTWluUHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0aE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFBhZ2UqIHBhZ2Us
ICBNZWRpYUZlYXR1cmVQcmVmaXggLypvcCovKQorc3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0
aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZy
YW1lKiBmcmFtZSwgIE1lZGlhRmVhdHVyZVByZWZpeCAvKm9wKi8pCiB7Ci0gICAgcmV0dXJuIGRl
dmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBwYWdlLCBNYXhQcmVmaXgp
OworICAgIHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwg
ZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZ1bmN0aW9uTWFwKCkK
QEAgLTM4OCw3ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVGdW5jdGlvbk1hcCgpCiAKIGJv
b2wgTWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbChjb25zdCBNZWRpYVF1ZXJ5RXhwKiBleHByKSBj
b25zdAogewotICAgIGlmICghbV9wYWdlIHx8ICFtX3N0eWxlKQorICAgIGlmICghbV9mcmFtZSB8
fCAhbV9zdHlsZSkKICAgICAgICAgcmV0dXJuIG1fZXhwUmVzdWx0OwogCiAgICAgaWYgKCFnRnVu
Y3Rpb25NYXApCkBAIC0zOTksNyArNDA2LDcgQEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpl
dmFsKGNvbnN0IE1lZAogICAgIC8vIHVzZWQKICAgICBFdmFsRnVuYyBmdW5jID0gZ0Z1bmN0aW9u
TWFwLT5nZXQoZXhwci0+bWVkaWFGZWF0dXJlKCkuaW1wbCgpKTsKICAgICBpZiAoZnVuYykKLSAg
ICAgICAgcmV0dXJuIGZ1bmMoZXhwci0+dmFsdWUoKSwgbV9zdHlsZSwgbV9wYWdlLCBOb1ByZWZp
eCk7CisgICAgICAgIHJldHVybiBmdW5jKGV4cHItPnZhbHVlKCksIG1fc3R5bGUsIG1fZnJhbWUs
IE5vUHJlZml4KTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KSW5kZXg6IGNzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAkocmV2
aXNpb24gMzA0NjUpCisrKyBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotY2xhc3MgUGFnZTsKK2NsYXNzIEZyYW1lOwogY2xhc3MgUmVuZGVyU3R5
bGU7CiBjbGFzcyBNZWRpYUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5RXhwOwpAQCAtNjYsNyArNjYs
NyBAQCBwdWJsaWM6CiAKICAgICAvKiogQ3JlYXRlcyBldmFsdWF0b3Igd2hpY2ggZXZhbHVhdGVz
IGZ1bGwgbWVkaWEgcXVlcmllcwogICAgICAqLwotICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IoY29u
c3QgU3RyaW5nJiBhY2NlcHRlZE1lZGlhVHlwZSwgUGFnZSogcGFnZSwgUmVuZGVyU3R5bGUqIHN0
eWxlKTsKKyAgICBNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRp
YVR5cGUsIEZyYW1lKiwgUmVuZGVyU3R5bGUqKTsKIAogICAgIH5NZWRpYVF1ZXJ5RXZhbHVhdG9y
KCk7CiAKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFN0cmluZyBt
X21lZGlhVHlwZTsKLSAgICBQYWdlKiBtX3BhZ2U7IC8vIG5vdCBvd25lZAorICAgIEZyYW1lKiBt
X2ZyYW1lOyAvLyBub3Qgb3duZWQKICAgICBSZW5kZXJTdHlsZSogbV9zdHlsZTsgLy8gbm90IG93
bmVkCiAgICAgYm9vbCBtX2V4cFJlc3VsdDsKIH07CkluZGV4OiBjc3MvTWVkaWFRdWVyeUV4cC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gY3NzL01lZGlhUXVlcnlFeHAuY3BwCShyZXZpc2lvbiAzMDQ2NSkK
KysrIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNiBA
QCBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pCiAKIE1lZGlhUXVlcnlF
eHA6On5NZWRpYVF1ZXJ5RXhwKCkKIHsKLSAgICBkZWxldGUgbV92YWx1ZTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UKSW5kZXg6IGNzcy9NZWRpYVF1ZXJ5RXhwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3NzL01l
ZGlhUXVlcnlFeHAuaAkocmV2aXNpb24gMzA0NjUpCisrKyBjc3MvTWVkaWFRdWVyeUV4cC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIk1lZGlhRmVhdHVyZU5hbWVzLmgi
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBW
YWx1ZUxpc3Q7CkBAIC00Miw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIEF0b21pY1N0cmluZyBt
ZWRpYUZlYXR1cmUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhRmVhdHVyZTsgfQogCi0gICAgQ1NT
VmFsdWUqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIENTU1ZhbHVlKiB2
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KIAogICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBNZWRpYVF1ZXJ5RXhwJiBvdGhlcikgY29uc3QgIHsKICAgICAgICAgcmV0dXJu
IChvdGhlci5tX21lZGlhRmVhdHVyZSA9PSBtX21lZGlhRmVhdHVyZSkKQEAgLTUwLDkgKzUyLDE1
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICB8fCAob3RoZXIubV92YWx1ZSAmJiBtX3ZhbHVl
ICYmIG90aGVyLm1fdmFsdWUtPmNzc1RleHQoKSA9PSBtX3ZhbHVlLT5jc3NUZXh0KCkpKTsKICAg
ICB9CiAKKyAgICBib29sIGlzVmlld3BvcnREZXBlbmRlbnQoKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6d2lkdGhNZWRpYUZlYXR1cmUgfHwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9tZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhlaWdodE1lZGlhRmVhdHVyZSB8fAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjptaW5faGVpZ2h0TWVkaWFGZWF0dXJlIHx8CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6Om1pbl9oZWlnaHRNZWRpYUZlYXR1cmUgfHwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bWF4X3dpZHRoTWVkaWFGZWF0dXJlIHx8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om1heF9oZWlnaHRNZWRpYUZlYXR1cmU7IH0KIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5n
IG1fbWVkaWFGZWF0dXJlOwotICAgIENTU1ZhbHVlKiBtX3ZhbHVlOworICAgIFJlZlB0cjxDU1NW
YWx1ZT4gbV92YWx1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDMwNDY1KQorKysgaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODA5LDcgKzgwOSw3IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpwaWNrTWVkaWEo
KQogICAgICAgICAgICAgICAgIGlmICghc291cmNlLT5oYXNBdHRyaWJ1dGUoc3JjQXR0cikpCiAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAKICAgICAgICAgICAgICAgICBpZiAoc291cmNl
LT5oYXNBdHRyaWJ1dGUobWVkaWFBdHRyKSkgewotICAgICAgICAgICAgICAgICAgICBNZWRpYVF1
ZXJ5RXZhbHVhdG9yIHNjcmVlbkV2YWwoInNjcmVlbiIsIGRvY3VtZW50KCktPnBhZ2UoKSwgcmVu
ZGVyZXIoKSA/IHJlbmRlcmVyKCktPnN0eWxlKCkgOiAwKTsKKyAgICAgICAgICAgICAgICAgICAg
TWVkaWFRdWVyeUV2YWx1YXRvciBzY3JlZW5FdmFsKCJzY3JlZW4iLCBkb2N1bWVudCgpLT5mcmFt
ZSgpLCByZW5kZXJlcigpID8gcmVuZGVyZXIoKS0+c3R5bGUoKSA6IDApOwogICAgICAgICAgICAg
ICAgICAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSA9IG5ldyBNZWRpYUxpc3QoKENTU1N0eWxl
U2hlZXQqKTAsIHNvdXJjZS0+bWVkaWEoKSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghc2NyZWVuRXZhbC5ldmFsKG1lZGlhLmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwpJbmRleDogcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2Uv
RnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMzA0NjUpCisrKyBwYWdlL0ZyYW1lVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKIAog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKQEAgLTM2NCw2ICszNjUsMTEgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91
dChib29sIGFsbG93U3VidHJlZQogICAgICAgICBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CiAg
ICAgfQogCisgICAgLy8gVmlld3BvcnQtZGVwZW5kZW50IG1lZGlhIHF1ZXJpZXMgbWF5IGNhdXNl
IHVzIHRvIG5lZWQgY29tcGxldGVseSBkaWZmZXJlbnQgc3R5bGUgaW5mb3JtYXRpb24uCisgICAg
Ly8gQ2hlY2sgdGhhdCBoZXJlLgorICAgIGlmIChkb2N1bWVudC0+c3R5bGVTZWxlY3RvcigpLT5h
ZmZlY3RlZEJ5Vmlld3BvcnRDaGFuZ2UoKSkKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxl
U2VsZWN0b3IoKTsKKwogICAgIC8vIEFsd2F5cyBlbnN1cmUgb3VyIHN0eWxlIGluZm8gaXMgdXAt
dG8tZGF0ZS4gIFRoaXMgY2FuIGhhcHBlbiBpbiBzaXR1YXRpb25zIHdoZXJlCiAgICAgLy8gdGhl
IGxheW91dCBiZWF0cyBhbnkgc29ydCBvZiBzdHlsZSByZWNhbGMgdXBkYXRlIHRoYXQgbmVlZHMg
dG8gb2NjdXIuCiAgICAgaWYgKG1fZnJhbWUtPm5lZWRzUmVhcHBseVN0eWxlcygpKQo=
</data>
<flag name="review"
          id="8407"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>